Kin*_*olf 13 sqlite sqlalchemy alembic
我正在为朋友zumba类开发一个小型注册应用程序,使用Flask,SQLAlchemy和Flask-migrate(alembic)来处理db update.我决定使用SQlite,因为应用程序必须是自包含的并且在没有Internet访问的笔记本电脑上本地运行,并且SQLite不需要安装服务或其他服务,这也是必须的.
处理SQLite缺乏对ALTER表的支持在初始开发期间不是问题,因为我只是销毁,在出现问题时重新创建数据库.但是现在我的朋友实际上正在使用该应用程序我遇到了问题.
在功能请求之后,必须修改一个表,并再一次得到可怕的""不支持SQLite方言中约束的ALTER".我预见这个问题将来也可能出现.
我该如何处理这个问题?在处理数据库方面,我几乎是一个新手.我读到一种处理方法是创建一个新表,创建新约束并复制数据并重命名表,但我不知道如何在alembic脚本中实现它.
Jot*_*loo 17
您可以render_as_batch=True在使用初始migation创建的env.py文件中设置variable().
context.configure(
connection=connection,
target_metadata=target_metadata,
render_as_batch=True
)
Run Code Online (Sandbox Code Playgroud)
它需要alembic> 0.7.0
这样可以生成批处理操作迁移,即创建带有约束的新表,复制现有数据,并删除旧表.请参阅http://alembic.zzzcomputing.com/en/latest/batch.html#batch-mode-with-autogenerate
如果您仍然遇到问题,请注意 - sqlite仍有细微差别,例如http://alembic.zzzcomputing.com/en/latest/batch.html#dropping-unnamed-or-named-foreign-key-constraints
| 归档时间: |
|
| 查看次数: |
5254 次 |
| 最近记录: |