有没有一种方便的方法在我的git提交中包含mysqldump?

时间:2010-07-23 11:17:42

标签: mysql git github mysqldump version-control

特别是如果我正在使用GitHub? 如果没有,我(或许是其他人)应该使用这样的工具吗?

3 个答案:

答案 0 :(得分:2)

我认为目前的最佳做法是将生产数据从生产系统中提取到开发人员数据库并进行测试。通过VCS分发数据存在这些数据与实际数据有很大差异的风险。

如果您只想分发当前的数据库模式:RoR等框架具有逐步更新数据库模式的迁移。

无论如何,只需将转储文件放入VCS并在每次提取新版本时导入它,所以我真的不需要使用工具。

答案 1 :(得分:1)

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

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

它是juts文本所以git会像其他任何一样选择该文件。那么只是

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

您可以考虑以下事项:

  • 将您的转储文件放在github上或将其添加到repo中意味着任何人都可以看到的任何数据,如密码和用户名,显然,使用虚假数据。
  • 您可能希望查看mysqldump选项以仅转储架构而不转储数据http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html

答案 2 :(得分:0)

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

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