现在我正在使用git进行Django部署,这对我来说似乎很满意.我唯一的问题仍然是如何正确处理数据库中的数据.例如.我经常需要在本地编辑来自生产站点的数据并将数据放回生产站点(请注意我正在谈论数据更改而不是模式迁移!).我认为工作流程应该类似于以下内容:在生产站点上转储数据>下载数据>在db中加载数据>在本地进行更改>转储数据>为数据生成差异>上传差异并在生产站点上应用更改.
对我来说重要的是,这也适用于对现有数据库行,删除等的更改...
因此,如果我自己开始尝试:1.这适用于任何数据转储格式吗?2.还有其他人这样工作,可能已经准备好了一些(结构)脚本解决方案吗?
我想要转储/更改/恢复的表非常小,它们通过公共接口是只读的.使用以下方法:
数据在服务器上使用./manage.py dumpdata命令转储.
然后将结果文件提交到服务器上的VCS.
我拉变化并执行./manage.py loaddata.
更改后./manage dumpdata在本地执行.
结果文件将提交到VCS并推送回服务器
./manage loaddata命令在服务器上执行
这可以通过Fabric自动化,例如
1 + 2 + 3 = fab dump_data:cities
,4 + 5 + 6 =fab push_data:cities
Diffs由VCS内部生成.这种方法对一切都不适用,但我发现它对简单的情况很有用.