はじめに
Alembicは、SQLAlchemyと連携してデータベースのスキーマ変更(マイグレーション)を管理するツールです。その設定の中心となるのが alembic.ini
というファイルです。
個人の備忘録程度の走り書きとなっておりますが、温かい目で見守っていただければ幸いです。
ここでは、alembic.ini
の主な項目について解説します。
参考にするコードは以下になります。
[alembic] セクション
-
script_location = migrations
- マイグレーションスクリプトを保存するディレクトリを指定します。
- 通常、
migrations
というディレクトリを使います。
-
prepend_sys_path = .
- 現在の作業ディレクトリを
sys.path
に追加して、Pythonモジュールのパス解決を助けます。
- 現在の作業ディレクトリを
-
version_path_separator = os
- 複数のマイグレーションディレクトリを使う際の区切り文字をOS依存にします(例:Unixでは
:
, Windowsでは;
)。
- 複数のマイグレーションディレクトリを使う際の区切り文字をOS依存にします(例:Unixでは
コメントアウトされているが重要な設定
-
sqlalchemy.url = driver://user:pass@localhost/dbname
- 実際に使うときは、ここに使用するDBの接続情報(ドライバー、ユーザー名、パスワード、ホスト、DB名など)を設定します。
-
file_template
- マイグレーションファイルの命名規則を定義します。
- 日付や時刻を含めた命名も可能で、履歴管理しやすくなります。
[post_write_hooks] セクション
- 自動生成されたマイグレーションスクリプトに対して、整形ツールや静的解析ツールをかける設定です。
- 例:
-
black
(Pythonコード整形) -
ruff
(静的解析・自動修正)
-
- 例:
ログ設定セクション
以下のセクションでは、ログ出力に関する設定を記述します。
-
[loggers]
,[handlers]
,[formatters]
- AlembicやSQLAlchemyが出力するログの出力レベル(例:INFO, WARNING)や出力先(例:stderr)などを管理します。
開発時に編集すべき主な項目
-
sqlalchemy.url
- 実際に使うDBに合わせて正確に設定する必要があります。
-
script_location
- 自分のプロジェクト構成に応じて変更する場合があります。
まとめ
alembic.ini
は Alembic を正しく動作させるための重要な設定ファイルです。
特に sqlalchemy.url
と script_location
は必ずプロジェクトごとに適切に設定する必要があります。
その他の項目についても、必要に応じてカスタマイズすることで、より快適なマイグレーション管理が可能になります!