我目前正在开发一个Django应用程序,该应用程序仅在本地托管,在笔记本电脑上工作。我一直在自己的笔记本电脑上编写和测试代码,并将代码推送到私有BitBucket存储库以进行基本版本控制。最终,部署机器上的数据是敏感的,所以我一直在我的开发机器上使用虚拟数据(我不能在我的开发机器上使用敏感数据 - 它必须只驻留在部署机器上)。
我现在已经有效地将应用程序代码镜像到部署机器上并在该机器上手动输入敏感数据,因此我在目标笔记本电脑上有效地使用了一个与我的开发机器上相同的工作应用程序,除了内容数据库不同。
我需要能够继续在我的开发机器上开发新功能 - 使用虚拟数据 - 我希望能够通过远程存储库推送到部署机器。我遇到的问题是,如果只是使用gitignore来阻止推送包含虚拟数据的db.sqlite,则数据库不同步,并且一些新功能可能包括更改或添加数据库模式 - 添加表和字段等。
我可以这样继续,但只将应用程序代码下载到部署机器并在部署时手动更改db.sqlite,但这很乏味且容易出错。
我不完全确定是否有基于git的解决方案来解决这个问题或基于Django的解决方案:不幸的是,我不是任何一个专家,所以欢迎任何观点!感谢。
答案 0 :(得分:0)
What you want to do is use database migrations. They are an integral part of Django as of 1.7, as seen here: https://docs.djangoproject.com/en/1.8/topics/migrations/
If you are using a Django version prior to 1.7, then you will want to look at South: https://south.readthedocs.org/en/latest/