Python 创建alembic迁移以创建版本\u表\u架构的架构
我想使用alembic在名为Python 创建alembic迁移以创建版本\u表\u架构的架构,python,sqlalchemy,database-schema,alembic,Python,Sqlalchemy,Database Schema,Alembic,我想使用alembic在名为foo的单个PostgreSQL模式范围内管理我的数据库。 对于新环境的自动部署,我希望alembic创建模式: op.execute("create schema foo") 我还想使用env.py中的version\u table\u schema='foo'将alembic\u version表放在这个模式中。 然而,我遇到了一个第22条军规的情况,因为模式还没有创建,alembic无法检查它的版本 在没有人工干预的情况下,是否无法使用version\u ta
foo
的单个PostgreSQL模式范围内管理我的数据库。
对于新环境的自动部署,我希望alembic创建模式:
op.execute("create schema foo")
我还想使用env.py
中的version\u table\u schema='foo'
将alembic\u version表放在这个模式中。
然而,我遇到了一个第22条军规的情况,因为模式还没有创建,alembic无法检查它的版本
在没有人工干预的情况下,是否无法使用
version\u table\u schema
kwarg?我是否需要一个单独的env.py
和versions文件夹来创建模式 您可以在env.py中创建模式,如下所示:
with connectable.connect() as connection:
context.configure(
connection=connection,
target_metadata=target_metadata,
include_schemas=True,
version_table_schema='foo'
)
connection.execute('CREATE SCHEMA IF NOT EXISTS foo')
with context.begin_transaction():
context.run_migrations()
有帮助,但这仅适用于“在线”模式。如果我想使用
alembic revision update head--SQL
生成SQL脚本,我需要在运行脚本之前手动确保模式存在。