【问题标题】:Any tools to keep database structure continuously synchronised in PHP / MYSQL?有什么工具可以在 PHP / MYSQL 中保持数据库结构持续同步?
【发布时间】:2012-07-28 01:54:16
【问题描述】:

我有 3 个开发环境 - 开发、登台和生产。 (PHP/MYSQL)

我正在寻找一种工具来在每次开发中同步我的数据库结构 环境。

我有一个包含当前数据库结构文件的 master_db_structure.sql 文件。

所以我需要做的是:

如果

我在 dev 中添加新表或更新表结构(然后将整个 db 结构导出到 master_db_structure.sql)

那么

Staging 会自动应用“CREATE TABLE”或“ALTER TABLE”,因为它会查看其当前结构并将其与 master_db_structure.sql 文件进行比较


过去我使用 mysqldiff 工具创建数据库“补丁”文件,但没有更好的方法吗?

希望你们中的一位能提供帮助。

【问题讨论】:

  • 我还发现了一个 PHPMYADMIN 拥有的工具 - wiki.phpmyadmin.net/pma/FAQ_9.1 但我无法配置到远程服务器的新连接,这对我没有多大帮助。
  • 好的,我设法使用 PHPMYADMIN 连接到我的远程数据库 - 但后来发现同步功能超时。我调查了文档并发现 (phpmyadmin.net/documentation/Documentation.html#faq9_1) SYNCHRONIZE 函数仅限于“小表”。很遗憾(我有 10 个表和一个 50,000 多条记录),因为我认为它默认配置为同步结构和数据(数据是最可怕的) - 否则这将是一个完美的一键式解决方案....

标签: php mysql database database-schema


【解决方案1】:

您可能想查看此工具:MySQL-PHP-AutoMigrations

【讨论】:

  • 看起来不错,但对我来说有点重量级。
【解决方案2】:

您似乎正在寻找迁移工具。我使用 Doctrine 的,但那是更大图书馆的一部分。 This 看起来可能是你想要的。

【讨论】:

  • 这是一个简单的轻量级工具,比我预期的要多 - 我将使用这个工具。
  • 链接已失效
【解决方案3】:

我使用 MySQL 工作台,它有很多有用的工具,包括模式同步器。

http://www.mysql.com/products/workbench/

【讨论】:

  • 据我所知,你更多的是在工作台上进行更改,然后将不同的模式与之同步。
  • 我遇到了一个问题——它似乎只能同步同名的数据库,即它不能同步“db_1”和“db_2”——它们都必须被称为“db_1”
【解决方案4】:

你可以随时查看Redbean我之前在一个项目中使用过它们真的很好处理

你所要做的就是编写 php 代码,它会修改你的数据库!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 2019-01-09
    相关资源
    最近更新 更多