【问题标题】:Synchronizing Database Schemas among Developers在开发人员之间同步数据库模式
【发布时间】:2009-04-23 22:27:03
【问题描述】:

我正在和其他几个人一起做一个项目。我们都有项目的本地副本,它也通过 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

【问题讨论】:

    标签: database cakephp


    【解决方案1】:

    数据库迁移是一种让您的工作数据库保持同步的简单方法。本质上,迁移是将数据库更新到最新模式并使用正确数据填充新表的脚本,因此它们保持有效状态。

    迁移提供的功能很少:

    • 自动创建/更新表的工具。这些工具会跟踪架构版本以及需要运行哪些脚本。
    • 一些迁移工具提供了运行代码(c#、ruby 等)而不是 sql 脚本的能力。迁移工具提供的代码库通常能够更好地抽象出依赖于数据库的部分,并使您的数据库脚本更加独立于数据库。

    有一些工具可用于 Ruby(迁移是 Rails 的重要组成部分)、C# 和 Java。当然,其他语言也一样。

    有很多关于迁移的questionshere,我建议搜索适合您工具链的迁移工具。

    【讨论】:

    • 嗯。找到了一个适合我们的 CakePHP 工具! (我应该尽快测试一下)感谢您的建议。
    • np - 很高兴你找到了适合你的东西。祝你好运。
    【解决方案2】:

    Joel Moss 的CakePHP Database Migrations 是目前最好的解决方案。

    来自github的项目描述:

    CakePHP 1.2 的数据库迁移是一个受 CakePHP 控制台支持的 shell 脚本,它可以让您在不接触一点 SQL 的情况下管理您的数据库模式。它基于 Ruby on Rails 实现的 Migrations,并使用 Pear 的 MDB2 包,因此支持所有支持的数据库。

    您可以将迁移视为数据库的版本控制系统。它的强大功能非常适合作为团队的一部分进行开发,因为每个成员都可以保留自己的应用程序数据库的独立副本,并使用迁移来更改其架构。然后所有其他成员要做的就是运行一个简单的两字 shell 命令,并且他们的数据库副本与其他人的数据库副本是最新的。

    Migrations shell 将为您要进行的每个数据库更改生成一个迁移文件。该文件可以包含任意数量的数据库更改。

    【讨论】:

      【解决方案3】:

      Github 上与 Cake 2.x 兼容的插件:

      https://github.com/CakeDC/migrations

      【讨论】:

        【解决方案4】:

        这是一个使用 Git 的很好的例子,但同样适用于 SVN。 http://thewebandthings.synodicsolutions.com/2009/06/13/cakephp-versioning-database-changes-with-git/

        【讨论】:

          【解决方案5】:

          我已经启动了一个小项目,用于在开发人员之间同步数据库并将其部署到生产环境。它仍处于早期阶段,但它已被证明可以工作,只是还没有很多文档。

          http://code.google.com/p/php-mysql-version-control/

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-05-11
            • 2010-10-01
            • 2014-04-21
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多