alembicのpath,sqlalchemyのurlの接続のやり方!※dockerで別のコンテナのSQLに接続するときの注意

python book開発備忘録
Photo by Christina Morillo on Pexels.com

最初に

alembicでmysqlに接続するときのpathで少し詰まったため、pathやurlの指定の仕方、dockerを使用した場合の接続の仕方などについてまとめます。

alembicとsqlalchemyのurl

alembicやsqlalchemyを使うとき、接続するためのurlを指定する必要があります。以下はalembic.iniのsqlalchemyのパスの例です。

書き方を詳しく説明すると、以下のようになります。
SQLAlchemyのcreate_engineで使用するpathも同様です。

path="{DBの名前}+{driver}://{username}:{password}@{host}:{port}/{database}?charset={charset_type}"

DBの名前はmysqlとかpostgresとかを指定します。driverは今回の場合だと、pymysqlです。
それ以降は必要なdbの情報を書いていきます。今回の例だと、rootユーザでパスワードは”password”になります。また、127.0.0.1(localhost)の33307ポート、データベース名をdbに指定しています。

ここでdockerを使用している方は注意が必要で、今回の場合だとapiコンテナからdbコンテナのmysqlに接続しようとしています。

上のpathのままだと、hostがlocalhostになっているため、apiコンテナの中のsqlを探してしまいます。

なので、dockerコンテナのmysqlに接続する場合は、mysqlが入っているコンテナの名前をhostにすると良いでしょう。

今回の場合は

path="{DBの名前}+{driver}://{username}:{password}@{コンテナ名}:{port}/{database}?charset={charset_type}"

最後に

dockerのネットワークについてもっと学ばなければと思いました。

コメント

タイトルとURLをコピーしました