因为我通常不这样做的前设计的,我的型号决项目中,我结束了修改模型很多,并因此删除我的测试数据库每次(因为"syncdb"永远不会改变的表格自动为您)。下面就是我的工作流程和我想听听关于你的。任何想法,欢迎..

  1. 修改模型。
  2. 删除测试数据库。(始终是一个简单的源码数据库为我。)
  3. 运行"syncdb".
  4. 产生一些测试数据通过代码。
  5. goto1.

一个次要问题,关于这个..在情况下您的工作是像上面,你如何执行4。步骤?你生成测试数据的手工或者是有一个适当挂钩点在Django应用程序,其中可以注射的试验数据产生的代码,在服务器启动?\

短暂性脑缺血发作。

有帮助吗?

解决方案

步骤2和3,可以在一个步骤:

manage.py reset appname

步骤4是最容易管理,从我的理解,通过使用 固定装置

其他提示

这是一份工作Django的具。他们都方便,因为它们的数据库独立和测试用具(和manage.py)已建立支持他们。

使用它们:

  1. 设置数据中的应用(电话 它"foo")采用管理工具
  2. 创建一个具目录在您的 "foo"程序的目录
  3. 类型: python manage.py dumpdata --indent=4 foo > foo/fixtures/foo.json

现在,在你的syncdb阶段,你只类型:

 python manage.py loaddata foo.json

和你的数据,将重新建立。

如果你想让他们在一个测试案例:

class FooTests(TestCase):
    fixtures = ['foo.json']

注意,你将不得不重新创建或手工更新,您的装置,如果你的架构剧烈变化。

你可以读取更多关于具django文档 具装

这里是我们做什么。

  1. 应用程序是命名一模式版本的编号。 appa_2, appb_1, 等等。

  2. 轻微变化不变的数字。

  3. 主要的变化增加数。Syncdb工作。和一个"数据迁移"的剧本可以写的。

    def migrate_appa_2_to_3():
        for a in appa_2.SomeThing.objects.all():
            appa_3.AnotherThing.create( a.this, a.that )
            appa_3.NewThing.create( a.another, a.yetAnother )
        for b in ...
    

这一点是,降以及重建并不总是适当的。它有时有帮助的移动数据形式的旧模型的新的模式没有重建,从头开始。

南是最酷的。

虽然良好的ol'复工作时,最好数据并不重要。

http://south.aeracode.org/

添加以马修的回应,我也经常使用定义SQL提供的初步数据作为记录 在这里,.

Django只是看起来的文件 <app>/sql/<modelname>.sql 并运行它们在创建之后的表期间 syncdbsqlreset.我使用的定义SQL当我需要做些什么喜欢填充我Django表从其他非Django数据库的数据表。

亲自我发展数据库项目,我的工作现在是相当大,所以我用 dmigrations 以创建数据库迁移脚本以修改数据库(而不是抹出来的数据库;如我在开始时).

编辑:实际上,我利用南方现在:-)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top