はじめに
- Alembic revision –autogenerate で差分のマイグレーションファイルができない
- python 3.11, alembic 1.7.7, sqlalchemy 2.0.30, sqlmodel 0.0.18
問題
毎回テーブル作成のマイグレーションファイルが生成されてしまう
解決方法
以下のような
include_name
を設定することで、デフォルトスキーマに限定する- connection は schema 指定でアクセスしている為、type_=schema で name=None で検出される
# exclude system table
def include_name(name, type_, parent_names):
if type_ == "schema":
return name in [None]
else:
return True
def run_migrations_online():
:
with connectable.connect() as connection:
context.configure(
connection=connection,
target_metadata=target_metadata,
dialect_opts={"paramstyle": "named"},
include_schemas=True,
include_name=include_name,
)