我正和其他几个人一起开展一个项目。我们都有该项目的本地副本,也通过svn repo不断更新。
因为我们处于开发的早期阶段,所以我们经常更改数据库的架构。当我们同步代码时,这会导致很多问题,因为我们没有很好的方法来同步我们的数据库模式。
有哪些直观且简单的方法可以同步频繁更改的数据库架构?
我们正在与CakePHP合作(不确定这是否有助于我找到好的解决方案)。
修改
在CakePHP中找到一些工具来完成这类工作: http://book.cakephp.org/view/734/Schema-management-and-migrations
这是一个额外的网站: http://bakery.cakephp.org/articles/view/cake-db-migrations-v2-1
答案 0 :(得分:2)
数据库迁移是保持工作数据库同步的简便方法。本质上,迁移是将数据库更新为最新模式并使用正确数据填充新表的脚本,因此它们保持有效状态。
迁移提供的功能很少:
Ruby有一些工具(迁移是Rails的重要组成部分),C#和Java。当然,还有其他语言。
答案 1 :(得分:1)
CakePHP Database Migrations是目前最好的解决方案。
来自github的项目描述:
CakePHP 1.2的数据库迁移是CakePHP控制台支持的shell脚本,它允许您管理数据库模式而无需触及一点SQL。它基于Ruby on Rails实现的迁移,并使用Pear的MDB2包,因此支持所有支持的数据库。
您可以将迁移视为数据库的版本控制系统。它的强大功能非常适合作为团队的一部分进行开发,因为每个成员都可以保留自己的应用程序数据库的独立副本,并使用迁移来更改其模式。所有其他成员必须这样做,就是运行一个简单的双字shell命令,并且他们的数据库副本与其他人的数据库副本是最新的。
迁移shell将为您要进行的每个数据库更改生成一个迁移文件。此文件可包含任意数量的数据库更改。
答案 2 :(得分:1)
Github上的Cake 2.x兼容插件:
答案 3 :(得分:0)
这是使用Git的一个很好的例子,但无论如何同样适用于SVN。 http://thewebandthings.synodicsolutions.com/2009/06/13/cakephp-versioning-database-changes-with-git/
答案 4 :(得分:0)
我已经开始了一个小项目,我们用它来在开发人员之间同步数据库并部署到生产环境。它仍然处于早期阶段,但它已被证明有效,它还没有很多文档。