2010-07-23 51 views

回答

0

添加一个脚本,该脚本将特定于您的项目的某个位置的sql文件转储(但在项目目录中)。

mysqldump -uroot -p my_db > my_project/my_db.sql

是凸状部文本,以便git会选择那些文件了作为改变,就像任何其他。所以当时只是

git add my_db.sql 
git commit -m "the schema changed" 
git push my_project github master 

你可以考虑以下几点:

  • 把你的转储文件在github上或将其添加到回购是指任何数据没有可用于任何人都可以看到,如密码和用户名等等显然,使用假数据。
  • 你可能想在mysqldump的选项看起来只转储模式,而不是数据http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html
2

我认为当前的最佳实践是将生产系统中的生产数据提取到开发人员数据库中并进行测试。通过VCS分发数据承担这种数据与实际数据差别很大的风险。

如果您的意思是仅仅分发当前的数据库模式:诸如RoR的框架具有用于增量更新数据库模式的迁移。

无论如何,这只是一个将转储文件放入VCS并在您每次下载新版本时导入它的问题,所以我真的不需要为此提供工具。

+2

有吨的框架虽然,遗憾的是没有强制执行数据库迁移(WordPress的或Joomla,例如)所以有许多情况下,如果有一个版本化的模式副本,而不是数据,可以在另一台机器上快速复制数据库,那么很多情况。 – 2010-07-23 11:29:26

+0

有没有更新数据库模式的PHP框架? – 2010-07-24 09:33:15

0

mysqldump的输出是一个简单的文本文件。

每次更改数据库时,请将mysqldump调用到同一个文件中。然后在您提交代码时将其提交到您的存储库。

相关问题