目次
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が正常に動作することを確認できます。