在git中存储数据库快照的好策略是什么?

时间:2012-01-25 12:14:43

标签: ruby-on-rails git

我目前从Git中排除了development.sqlite3,这样我就可以保持git status干净,除非文件实际发生了变化。

但是,当我想要检查早期版本依赖于不同数据库(和虚拟数据)的早期版本时,我最终得到的代码和数据库不同步。

因为我没有将我的dev数据库检入Git,所以很难重置该环境。我不能只重建数据库,因为它需要它中的所有虚拟信息。

是否有一种快乐的媒介,我可以每天自动将我的数据库备份到Git(或者每次创建一个标签时),但仍然可以在Git .ignore中将其排除?

1 个答案:

答案 0 :(得分:4)

如果您需要数据库才能正常运行,或者数据有助于您开发,那么我认为您应该使用种子文件来定义它们。然后,当您签出以前的版本时,首先运行迁移,然后:

rake db:seed

如果您在反映数据库状态时更新种子文件,那么无论您检查哪种修订版本,您都可以生成正确的数据。