3

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

谢谢,原谅我的英语:)

4

7 回答 7

4

您必须与项目中的人员进行实际交谈。

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

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

模型定义很特殊,谁能改变这个必须告诉其他人。

于 2008-10-11T15:40:56.073 回答
3

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

/数据库(在存储库中)

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

...

于 2008-10-11T15:46:46.917 回答
1

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

于 2008-10-16T15:44:50.820 回答
1

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

例如,如果您只是添加一个新字段,则 syncdb 不会做任何事情。

于 2008-10-11T18:38:14.793 回答
1

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

http://south.aeracode.org/

它似乎是最好的迁移应用程序......也许我错过了一些重要的东西,但我发现它很好用......

于 2009-01-12T05:46:00.980 回答
1

还可以看看 deltasql。您可以在http://www.gpu-grid.net/deltasql进行测试(用户名:管理员密码:testdbsync)并从http://sourceforge.net/projects/deltasql ciao 下载 :-)

于 2009-01-29T13:58:37.660 回答
0

听起来你想要迁移。

例如: http ://www.aswmc.com/dbmigration/

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

于 2008-10-11T15:41:17.180 回答