数据库和版本控制系统

时间:2008-10-11 15:37:41

标签: database version-control django-models project-management

我正在使用django框架开发项目,并使用控制版本系统将我的代码与其他人同步。但我不知道如何组织数据库工作。 在django中,任何参与项目的人都可以更改django模型,并告诉'syncdb'将模型对象与db同步。 但其他人不关心这种变化,它的代码修改可能不起作用。 请告诉我解决这个问题的一些方法(可能是不同的数据库或其他数据库)。

谢谢,原谅我的英文:)

7 个答案:

答案 0 :(得分:4)

你必须真正与你项目的人交谈。

如果有人更改了任何数据库模型,他们必须实际告诉其他人有关此更改的信息。这不是Django问题。

想想任何SQL数据库 - 没有Django。当DBA删除表时,他们必须告诉每个人他们更改了数据库。否则所有使用该表的程序都会中断。

模型定义很特殊,任何能够改变它的人都必须告诉其他人。

答案 1 :(得分:3)

您必须在verison控制下对数据库进行初始备份。之后,您必须将所有修改脚本放在同一版本控件上。像这样:

/数据库(在存储库中)

  • 初始备份
  • Script1_date.sql
  • Script2_date.sql

...

答案 2 :(得分:1)

我不确定你理解你的问题;但请记住,在Django上,syncdb只创建新表。它不会改变现有的表格。

例如,如果您只是添加一个新字段,则syncdb将不执行任何操作。

答案 3 :(得分:1)

我很好奇......如果你将MDF和LDF文件置于源代码管理之下,会发生什么?当然,如果你的表是空的,你只有数据库的结构...

答案 4 :(得分:1)

实际上,看看替代方案,我常常惊讶于没有人提到南方

http://south.aeracode.org/

它似乎是那里最好的迁移应用程序......也许我错过了一些重要的东西,但我觉得与它合作非常好......

答案 5 :(得分:1)

还看看deltasql。 你可以在http://www.gpu-grid.net/deltasql测试它(用户名:admin密码:testdbsync) 并从http://sourceforge.net/projects/deltasql下载 ciao: - )

答案 6 :(得分:0)

听起来你想要迁移。

举个例子: http://www.aswmc.com/dbmigration/

您可能还想添加实际测试架构是否符合预期的功能单元测试,当测试失败时,您可以看到它是架构更改,并审核它是否会影响应用程序的其他部分。如果没有,请修复您的测试以考虑新架构。