【发布时间】:2014-12-10 14:05:23
【问题描述】:
我有一个 Django 项目,我做了以下工作:
- 添加了一个包含一些列的表格
- 在数据库中插入一些记录
- 添加了一个我没有意识到我需要的新列
- 进行了更新以填充该列
当我执行migrate 时,一切正常。在表上创建了新的 db 列并填充了值。
但是,当我尝试运行测试时,我现在在上面的第 2 步中崩溃了。当我插入时,我相信它期望该字段存在,即使当时尚未创建它。
我该怎么办?
编辑:更多信息
我首先创建了一个类,A 类并进行了迁移以创建表。然后我对我的数据库运行了这个。然后我写了一个手动迁移来填充一些我知道会在那里的数据。我对数据库运行了这个。后来我意识到我需要在模型上添加一个额外的字段。我添加了该字段并进行了迁移并针对数据库运行了它。一切正常,我确认新列在数据库中。
现在,我去运行我的测试。它试图创建测试数据库并在尝试运行我编写的填充数据脚本时说“1054 - 未知列[我添加到现有表中的新列]”。很可能是在看表,注意到模型中存在第三个字段,但数据库中还没有,但我不知道如何做得更好。
【问题讨论】:
-
你的型号是什么?您是否对模型进行了更改?
-
请解释一下您所说的“当我插入时,我相信它期望该字段存在,即使当时尚未创建它”?单元测试独立于迁移...
-
您最初是如何创建表的?您是使用迁移还是进入 SQL 并手动创建它?
-
我会尝试在编辑中解决您的问题。
标签: python mysql django database data-migration