(Python/Django):如何保持生产数据库与开发电脑数据库的同步(模式和数据)?
我在本地有一个Postgres数据库,每天都会往里面填充数据。这时候我想找个好办法,把这些数据转移、同步或者镜像到一个生产环境的Postgres数据库里。
顺便说一下,我是在用Python和Django进行开发。
谢谢!
2 个回答
2
South是一个非常好用的工具,专门用来处理Django项目中的数据库迁移。最新版本现在支持数据库结构和数据的迁移。
http://south.aeracode.org/docs/tutorial/part3.html#data-migrations
这个应用提供了一些管理命令,可以生成可执行的文件,运行这些文件后可以改变数据库的结构或插入记录。这对于自动化生产环境的变更或者团队协作时非常有用。你可以使用像fabric这样的工具(如果必须的话也可以手动操作)来上传迁移文件,并运行迁移命令来更新你的数据库。
3
这对我来说似乎是个奇怪的工作流程。把数据导入到生产数据库里,然后不时地和开发数据库同步,不是更好吗?我觉得开发机器不应该参与生产数据的工作流程。
我用fabric是这样做的。我写了一个简单的函数,可以把生产数据库的一部分复制到本地的开发机器上。