Django不会创造一张桌子

时间:2016-11-23 00:12:29

标签: django postgresql migration

我在django中有两个不同的数据库。最初,我在我的辅助数据库中有一个名为cdr的表。我决定摆脱第二个数据库,只需将cdr表添加到第一个数据库。

我在设置文件和整个应用程序中删除了引用(我认为所有这些引用)到辅助数据库。我删除了所有迁移文件并运行了新的迁移。

我运行迁移时,即使在我的postgres数据库中不存在,也不会创建以前在辅助数据库中的表。

我根本不能为我的生活理解为什么makemigrations函数会在我将其添加回模型定义时为表创建迁移文件,并且我已经验证它在迁移文件中。当我运行迁移时,它告诉我没有要应用的迁移。

为什么会如此。我已经确认我已经托管= True。我已通过登录第一个数据库并运行\ dt确认该模型不在我的postgres数据库中。

为什么Django仍然认为这个表仍然存在,即使它在迁移文件中显示了一个create命令,它也告诉我不应用迁移?我甚至删除了辅助数据库,以确保它不会以某种方式被引用。

我怀疑代码不需要向我解释,但如果需要我会发布。我想我在这里缺少一些简单的东西。

1 个答案:

答案 0 :(得分:2)

  

为什么Django仍然认为这个数据库仍然存在   它告诉我即使它显示了一个创建,也没有要应用的迁移   迁移文件中的命令

因为django在您的数据库中维护了一个名为django_migrations的表,该表列出了已应用的所有迁移。由于您几乎要重新开始,请清除此表,然后运行迁移。

如果这仍然不起作用并且仍然假设您仍处于重新开始状态,那么删除所有表(甚至是数据库并再次进行迁移)是一件简单的事情。如果您有要保存的数据,则需要查看--fake和--fake-initial选项以进行迁移