【问题标题】:Alembic Django Flask migrate databaseAlembic Django Flask 迁移数据库
【发布时间】:2013-07-31 14:44:34
【问题描述】:

我有一个在 django 和烧瓶之间共享的数据库。

在烧瓶应用程序中,我使用 sqlAlchemy 并使用 Alembic 迁移数据库。 但是当我迁移数据库并使用命令时:

$ alembic revision --autogenerate -m "some message"

它会自动删除 django 创建的所有表:

INFO  [alembic.migration] Context impl MySQLImpl.
INFO  [alembic.migration] Will assume non-transactional DDL.
INFO  [alembic.autogenerate] Detected removed table u'django_content_type'
INFO  [alembic.autogenerate] Detected removed table u'auth_group'
INFO  [alembic.autogenerate] Detected removed table u'auth_user'
INFO  [alembic.autogenerate] Detected removed table u'auth_user_groups'
INFO  [alembic.autogenerate] Detected removed table u'django_session'
INFO  [alembic.autogenerate] Detected removed table u'auth_permission'
INFO  [alembic.autogenerate] Detected removed table u'auth_user_user_permissions'
INFO  [alembic.autogenerate] Detected removed table u'account_userprofile'
INFO  [alembic.autogenerate] Detected removed table u'south_migrationhistory'
INFO  [alembic.autogenerate] Detected removed table u'django_site'

如何配置Alembic,使数据库迁移不删除django的表?

【问题讨论】:

  • Alembic 或 Flask 是否有 db 自省工具(如 django 有)?

标签: django sqlalchemy flask migrate alembic


【解决方案1】:

您可以在环境上下文中使用include_object。该函数可以返回TrueFalse,指示是否应在自动生成扫描中考虑给定的表/对象

更多详情请看这里:Alembic API

【讨论】:

    【解决方案2】:

    我自己解决了这个问题:

    在env文件中,函数:

    def run_migrations_online():
        target_metadata.reflect(engine, only=[ "django_content_type", "auth_group", ...])
    

    把你的桌子放在这里。这用引擎定义表存在并且不删除它们。

    【讨论】:

    • 谢谢我也这样解决了我的问题。但是alembix 表呢?我通过自动生成检测到它们
    猜你喜欢
    • 2013-07-04
    • 2015-12-24
    • 2016-05-21
    • 2021-11-08
    • 2016-09-06
    • 2019-04-25
    • 2019-06-12
    • 2018-03-04
    • 2013-06-16
    相关资源
    最近更新 更多