首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否值得使用方炼金术-迁移?

是否值得使用方炼金术-迁移?
EN

Stack Overflow用户
提问于 2010-11-17 22:14:27
回答 2查看 35.5K关注 0票数 50

我有一个使用sqlalchemy (在幽门内)的web应用程序。我需要有效地更改模式,以便能够至少在每天的基础上更改生产版本,甚至更多,而不会丢失数据。

在周末的时候,我一直在玩sqlalchemy迁移游戏,我会说这给我留下了一个不好的印象。首先,,我认为它无法帮助两个数据库引擎之间的迁移,;这很可能仅用sqlalchemy完成。其次,这些文档似乎并不是最新的。我不得不更改一些命令行选项,比如在每个命令中给出存储库路径,这可能是迁移的错误。

但最糟糕的是"manage.py “命令。不仅它实际上修改了数据库(这一点在文档中是明确的,所以我不能责怪迁移),而且我的第一个迁移脚本只是简单地进行了愚蠢的模式迁移,使得升级后的降级数据库与原始的模式不同。但是"manage.py测试“只是回答了这样的问题

代码语言:javascript
运行
复制
 success !

也就是说,它甚至没有检查模式是否处于一致状态。那么,是否值得使用迁移呢?与与良好实践as proposed by S.Lott相关联的自己动手方法相比有什么优势吗?除了sqlalchemy--迁移实际上简化了迁移过程,还是我只是试图先验地使用不好的迁移(那么请告诉我为什么不像上面的链接所建议的那样明显优于创建CSV列)?

非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-07 01:01:22

使用Alembic代替:

http://pypi.python.org/pypi/alembic

谢谢您的评论,编辑后添加了一些推理--

它是由SQLAlchemy的作者开发的,它是全新的,并且得到了很好的支持。我对炼金术的迁移还不太了解,无法给出一个很好的比较。但是,我快速阅读了清楚而简洁的Alembic文档,然后在很短的时间内完成了自己的自动生成迁移工作。

自动生成:不是其唯一的操作模式,但如果您选择,Alembic将读取应用程序的sqlalchemy配置(例如,设置所有表、约束和映射的声明式模型类),并将其与数据库的实际当前状态进行比较,并输出一个Python脚本,该脚本表示两者之间的增量。然后将该脚本传递给Alembic的升级命令,然后就可以解决这些差异。通常需要手工编辑迁移脚本,这就是(a)迁移的性质,和(b)您想要做的事情,以确保您在运行迁移之前完全了解迁移将要执行的确切步骤。

Alembic也为您的迁移跟踪方式带来了类似DVCS的功能。它使返回到数据库模式的任何过去状态变得非常容易。

票数 79
EN

Stack Overflow用户

发布于 2012-10-23 07:58:15

Alembic ( http://pypi.python.org/pypi/alembic ),由SQLAlchemy作者维护,考虑到sqlalchemy迁移开发看起来停滞不前,今年几乎没有提交( http://code.google.com/p/sqlalchemy-migrate/source/list ),我认为不值得再使用,我将把当前的项目切换到Alembic。

如果它仍然被大量维护,我将对项目与SQLAlchemy保持同步的能力有信心(这是以前的情况)。

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

https://stackoverflow.com/questions/4209705

复制
相关文章

相似问题

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