从sqlite3切换到postgres后,django迁移失败

时间:2016-10-05 17:06:55

标签: python django postgresql django-models sqlite

我一直在开发一个使用sqlite3作为后端的Django项目,它一直运行良好。我现在正试图将项目切换为使用postgres作为后端,但遇到了一些问题。

修改我的设置文件,设置postgres,创建数据库和用户我在运行manage.py migrate

时收到以下错误

django.db.utils.ProgrammingError: relation "financemgr_rate" does not exist

financemgr是项目中的应用。 rate是应用内的一个表格。

如果我运行同样的命令,但指定sqlite3作为我的后端,它可以正常工作。

为清楚起见,我将重复:

环境配置

  • Ubuntu 14.04,Django 1.10
  • 设置文件有'ENGINE': 'django.db.backends.sqlite3'
    1. 运行manage.py migrate
    2. 迁移成功运行并处理所有迁移

环境配置

  • Ubuntu 14.04,Django 1.10
  • 设置文件有'ENGINE': 'django.db.backends.postgresql_psycopg2'
    1. 运行manage.py migrate
    2. 迁移运行并提供错误django.db.utils.ProgrammingError: relation "financemgr_rate" does not exist

其他一切都是一样的。我不是试图迁移数据,只是填充架构等。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这可能会对您有所帮助:

我认为您已预先存储了迁移文件(针对sqlite数据库进行迁移)。 现在您已经更改了数据库配置,但仍然根据您拥有的迁移文件(迁移到以前的数据库)来查找现有表。 最好删除应用程序的迁移文件夹中的所有迁移文件,然后通过运行命令python manage.py makemigrationspython manage.py migrate再次迁移它,它可以正常工作。