PythonのAlembicでマイグレーション用ディレクトリを移動したいときの設定方法

公開日:
目次

Alembicを使っていてマイグレーション用のディレクトリを移動したいと思ってやってみました。

今後もう一度やるときに調べるのがめんどくさいので、備忘録です。

Alembicを新しいディレクトリ構造に移動する方法

前提

  • alembicのマイグレーション用ディレクトリはmigrationsとして、ルートディレクトリにあるものとします。
  • 移動先はsrcディレクトリとします。

migrations ディレクトリを移動する

まず、migrationsディレクトリを移動したい場所に移動します。

srcディレクトリに移動する場合は以下のコマンドを使用します。

mv migrations src/migrations

設定ファイルを変更する

次に、alembic.iniファイルの設定を変更して、migrationsディレクトリの新しい場所を指すようにします。

alembic.ini
# alembic.ini
[alembic]
# 他の設定がここにあります...

# バージョンディレクトリのパスを変更(相対パスまたは絶対パスで指定可能)
script_location = src/migrations

env.pyの修正

もしalembic/env.pyファイルのインポートパスが影響を受ける場合は、必要に応じて修正します。

例えば、modelsモジュールのインポートが相対パスに依存している場合、絶対パスにするなどの対策が必要です。

マイグレーションの確認

設定を変更した後に、正常に動作することを確認するために、以下のコマンドを実行してみます。

# 新しいマイグレーションを作成
alembic revision --autogenerate -m "Testing new directory structure"

# マイグレーションを適用
alembic upgrade head

これで、migrationsディレクトリが新しい場所に移動され、その新しい場所からAlembicが正常に動作することを確認できます。