sqlalchemy - SQLAlchemy + Alembic:创建架构迁移

标签 sqlalchemy alembic flask-migrate

我不确定如何定义create schema foo迁移?我的模型如下所示(我正在使用Flask-Migrate):

class MyTable(db.Model):
    __tablename__ = "my_table"
    __table_args__ = {"schema": "foo"}

    id = ColumnPrimKey()
    name = Column(Text, unique=True, nullable=False)


当我执行mange db upgrade时会失败,因为模式“ foo”不存在。如何使用SQLAlchemy和Alembic为架构添加迁移?

最佳答案

我通过修改migration upgrade命令使其首次运行来完成此操作:

op.execute("create schema foo")


并在downgrade函数中

op.execute("drop schema foo")


因此,整个迁移文件如下所示:

from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = '6c82c972c61e'
down_revision = '553260b3e828'
branch_labels = None
depends_on = None


def upgrade():
    op.execute("create schema foo")
    ...

def downgrade():
    ...
    op.execute("drop schema foo")

关于sqlalchemy - SQLAlchemy + Alembic:创建架构迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49582020/

相关文章:

python - 在 sqlalchemy 字段中将值强制为大写的最佳方法

python - 如何使用 flask-sqlalchemy 将区分大小写的字符串插入 Mysql?

python - Sqlalchemy 在查询过程中失去连接

python - 使用 alembic 迁移时本地和 heroku 数据库不同步

python - 如何在 flask-sqlalchemy 中按索引创建顺序

python - 如何找到使用 flask-migrate 创建的最新迁移?

python - 从 Flask-Migrate 管理器运行应用程序

python - SQLAlchemy 反射 : How do I query data from specific columns?

python - alembic 并获取最后插入的值

sqlalchemy - Alembic 不制作复合主键