2012-01-25 145 views
1

我目前从SVN排除我development.sqlite3,这样我可以保持我的git status干净,除非文件实际上已经改变了。在git中存储数据库快照的好方法是什么?

然而,当我想签,从一个较早的时间我结束了代码和数据库不同步的不同数据库(和虚拟数据)的依赖的代码更早版本。

因为我没有做我的开发数据库签入的Git是非常困难的重置环境。我不能重建数据库,因为它需要所有的虚拟信息。

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

回答

4

如果您需要在数据库正常运行或伪数据,可以帮助你再制定,我认为你应该使用的种子文件来定义他们的数据。然后,当你看看以前的版本,你先运行迁移:

rake db:seed 

如果你去反映数据库的状态更新您的种子文件,然后你检查什么版本了,你就可以生成正确的数据。

+0

不幸的是这并没有真正击中当场。我使用了'rake db:populate'类似的策略,但是填充文件很快就会过时,并且没有什么乐趣可以更新。然而,一个快照将明确纠正 –

+1

那一天,我明白,这不是最有趣的消遣我只是觉得这可能是“正确”的方式(如果我们假装,这样的事情存在一分钟!)。使用FactoryGirl创建对象会给我带来很多痛苦,因为我会更新工厂定义,这有助于减少开销。 – Nick

相关问题