目前,我正在看Python框架决于未来数据库-基于网络的应用程序,以及为港口的一些应用程序目前编写PHP.一个令人讨厌的问题在我的最后一年跟踪数据库模式的改变和部署这些变化给生产系统。我不敢问为能够消除他们太多,但当然,对于测试和调试,这将是一个伟大的功能。从其它问题(例如 这一个这一个),我可以看到,我不是孤单,这不是一个简单的问题。此外,我发现了许多灵感的回答。

现在,作为决似乎是非常强大,没有任何工具以帮助上述?也许它甚至在他们的文档和我错过了吗?

有帮助吗?

解决方案

至少有两个三方工具处理数据库模式的移徙, Django演变.我还没有尝试任何一个,但我听说一些好的事情,关于南,虽然进化已经存在一段时间。

此外,看看 SchemaEvolution 在Django wiki。这只是一wiki网页关于迁移的数据库。

其他提示

我最后一次检查(版本0.97),syncdb将能够增加表同步数据库模式与你的models.py 文件,但它无法:

  • 重新命名或添加列在人口稠密的数据库。你需要做的是,通过一手。
  • Refactorize模型(如拆分成两个)和重新填充数据库。

它可能是可能的,虽然编写一Django脚本,以使移徙通过两个不同的 管理人员, 但可能会采取年龄如果数据库是很大的。

有一个小组会议数据库模式的变化在最近的DjangoCon;还有一个 视频会议 (由于谷歌),这应该提供一些有用的信息,一些公用事业。

现在还有 dmigrations.从 公告:

django演变的企图解决这一问题的巧妙方式,通过检测的变化模型,不但反映在数据库模式,并弄清楚需要做什么把两个回同步。 与此相反,dmigrations采取愚蠢做法:它需要明确说明改变的顺序迁移,它将适用反过来带来一个数据库到最近的状态,这反映了潜在的模型。

这意味着额外的工作对于开发人员的创建迁移,但它也使得整个过程完全透明的—我们的项目,我们决定去带最简单的系统,该系统可能的工作。

(我的大胆)

我听说过很多关于 Django架构的演变分支 和这些都是队的实际用户。它mostely工作中,并在做什么,它应该做的。

U应查找 Dmigrations, 它的职能有点不同,从django eveoltions.它显示了你的一切就是这样做和为compliccated的事情,它要求用您intervetnions.它应该是巨大的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top