首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在新的应用程序部署中将db与Flask-迁移同步?

如何在新的应用程序部署中将db与Flask-迁移同步?
EN

Stack Overflow用户
提问于 2016-03-17 18:55:34
回答 1查看 2.3K关注 0票数 2

当将应用程序部署到一个新服务器(即数据库是空的)时,我如何正确地将数据库与瓶迁移同步?

当我已经有了一些模式时,我已经添加了Flask迁移到项目中,所以我没有对所有create_table()进行“初始”迁移。现在,当我在我的部署脚本中执行manage.py db upgrade时,我得到了relation "..." does not exist

是否有任何内置方式来检测空数据库并运行'create_all()‘而不是迁移?这就是Alembic的烹饪手册建议。由于我已经在使用Flask,所以我正在寻找一些处理迁移的统一方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-18 15:40:38

理想的解决方案是为您的db模式生成初始迁移,就像您开始跟踪使用Flask和Alembic迁移的那一天一样。

如果你记得当时做这件事的话,做这件事很简单。只需创建一个单独的空数据库(不要使用真正的db ),将应用程序配置为使用空数据库,然后生成迁移。这个迁移将包含整个模式。一旦生成了迁移,就摆脱空数据库,将配置恢复到真正的db。

如果您已经有了额外的迁移,那么它会变得更复杂一些。您必须返回您想要生成初始迁移的代码版本,然后按照上面的步骤生成它。最后,您需要在迁移列表中插入初始迁移,作为第一个迁移。查看几个迁移脚本,找出每个迁移如何引用上一个迁移脚本。几个小编辑就能让你振作起来,跑起来。

如果这看起来太费劲了,那么另一种选择是使用db.create_all()生成数据库,直到最近的迁移,然后使用./manage.py db stamp head告诉Alembic它应该考虑更新数据库。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36069353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档