我在django和flask之间共享了一个数据库。
在flask app中,我使用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的表?
答案 0 :(得分:1)
我自己解决了这个问题:
在env文件中,函数:
def run_migrations_online():
target_metadata.reflect(engine, only=[ "django_content_type", "auth_group", ...])
把你的桌子放在这里。这通过引擎定义表存在并且不丢弃它们。
答案 1 :(得分:0)
您可以使用环境上下文中的include_object
。该函数可以返回True
或False
,指示是否应在自动生成扫描中考虑给定的表/对象
请点击此处了解详情:Alembic API