我正在使用django框架开发项目,并使用控制版本系统将我的代码与其他人同步。但我不知道如何组织数据库工作。 在django中,任何参与项目的人都可以更改django模型,并告诉'syncdb'将模型对象与db同步。 但其他人不关心这种变化,它的代码修改可能不起作用。 请告诉我解决这个问题的一些方法(可能是不同的数据库或其他数据库)。
谢谢,原谅我的英文:)
答案 0 :(得分:4)
你必须真正与你项目的人交谈。
如果有人更改了任何数据库模型,他们必须实际告诉其他人有关此更改的信息。这不是Django问题。
想想任何SQL数据库 - 没有Django。当DBA删除表时,他们必须告诉每个人他们更改了数据库。否则所有使用该表的程序都会中断。
模型定义很特殊,任何能够改变它的人都必须告诉其他人。
答案 1 :(得分:3)
您必须在verison控制下对数据库进行初始备份。之后,您必须将所有修改脚本放在同一版本控件上。像这样:
/数据库(在存储库中)
...
答案 2 :(得分:1)
我不确定你理解你的问题;但请记住,在Django上,syncdb只创建新表。它不会改变现有的表格。
例如,如果您只是添加一个新字段,则syncdb将不执行任何操作。
答案 3 :(得分:1)
我很好奇......如果你将MDF和LDF文件置于源代码管理之下,会发生什么?当然,如果你的表是空的,你只有数据库的结构...
答案 4 :(得分:1)
实际上,看看替代方案,我常常惊讶于没有人提到南方
它似乎是那里最好的迁移应用程序......也许我错过了一些重要的东西,但我觉得与它合作非常好......
答案 5 :(得分:1)
还看看deltasql。 你可以在http://www.gpu-grid.net/deltasql测试它(用户名:admin密码:testdbsync) 并从http://sourceforge.net/projects/deltasql下载 ciao: - )
答案 6 :(得分:0)
听起来你想要迁移。
举个例子: http://www.aswmc.com/dbmigration/
您可能还想添加实际测试架构是否符合预期的功能单元测试,当测试失败时,您可以看到它是架构更改,并审核它是否会影响应用程序的其他部分。如果没有,请修复您的测试以考虑新架构。