【问题标题】:Django App - Getting Initial Rows into DatabaseDjango App - 将初始行放入数据库
【发布时间】:2015-07-08 07:03:17
【问题描述】:

我有一个 Django 应用程序,我有几行希望在开始时出现在应用程序中。一个示例是具有一些设置的系统设置表 - 应该使用构建的任何数据库实例来设置它们。

过去,我通过手动制作插入记录的迁移脚本来处理此问题。但是,当我运行测试并创建和删除数据库时,这些脚本不会再次运行并且数据库是空的。测试假设迁移仅具有模式迁移,因此它们不需要再次运行它们,但事实并非如此。这让我想到也许我的迁移不应该是数据迁移,我应该重新考虑这个过程?我不知道该怎么办。

【问题讨论】:

    标签: python django migration


    【解决方案1】:

    您可以在测试中使用固定装置来获取模型的初始数据。

    https://docs.djangoproject.com/en/1.8/howto/initial-data/

    【讨论】:

    • 感谢您的链接。不过,我想我仍然会遇到同样的问题。即使使用这种方法,每次测试后都会删除所有数据,对吧?
    • 嗯,在我看来,您正在删除数据库。过去你说你用脚本处理它。好吧,我在 django 中知道的最接近的东西是固定装置。相反,您可以使用脚本在数据库创建任务测试中加载固定装置。
    • 这样,在通过测试任务创建数据库后,您将始终将系统设置固定装置加载到数据库中。
    • 看起来夹具是通过命令行调用加载的,所以我不确定如何在测试中做到这一点。
    • 你是如何实际运行测试的?
    猜你喜欢
    • 2019-11-14
    • 1970-01-01
    • 2022-08-23
    • 2018-07-13
    • 2019-04-07
    • 2021-08-05
    • 2020-10-21
    • 1970-01-01
    • 2016-06-12
    相关资源
    最近更新 更多