【发布时间】:2012-03-30 01:28:03
【问题描述】:
我正在开发一个网站。我有一个远程和本地副本,我在本地副本上开发,然后当我有一个稳定版本时,我复制所有 PHP 文件,然后我必须使远程实时 MySQL 数据库看起来像我的本地数据库。
我通常会删除远程实时数据库(只要我不删除新更改)并使用 PHPMyAdmin 从 .sql 文件重新导入它。
我想为我的数据库建立一个更可靠、更正确、更安全的版本更新系统。 MySQL 服务器复制是正确的答案吗?这通常是怎么做的?
【问题讨论】:
我正在开发一个网站。我有一个远程和本地副本,我在本地副本上开发,然后当我有一个稳定版本时,我复制所有 PHP 文件,然后我必须使远程实时 MySQL 数据库看起来像我的本地数据库。
我通常会删除远程实时数据库(只要我不删除新更改)并使用 PHPMyAdmin 从 .sql 文件重新导入它。
我想为我的数据库建立一个更可靠、更正确、更安全的版本更新系统。 MySQL 服务器复制是正确的答案吗?这通常是怎么做的?
【问题讨论】:
不,您永远不希望将开发/测试环境复制到实时数据库。如果你不小心丢了一张桌子,你会毁了现场。
最好使用http://www.mysqldiff.org/之类的东西
【讨论】:
可以说,最好的方法是迁移。迁移本质上是与您的应用程序一起存储的代码,它会在数据库模式发生变化时更新它。迁移的好处是它们可以进行版本控制,并且很容易将数据库模式中的更改与代码中的更改关联起来。如果使用得当,您还可以使用迁移将数据库回滚到之前的任何状态。
例如,查看Yii framework 中的迁移使用。
【讨论】: