【发布时间】:2016-10-18 18:53:25
【问题描述】:
我在 SQlite 上进行了 django 开发,现在我尝试使用 postgres 9.5 运行我的应用程序。
但是,当我运行 migrate 时,我收到了这个错误 django.db.utils.ProgrammingError:关系“django_content_type”不存在
。我正在使用 django 1.8 和 python 2.7 并在执行迁移时获取它,在运行 -fake initial 时遇到相同的错误。
我正在查看现有答案(这个问题很常见),但我没有看到适合我的明确答案。
> (mrp) C:\Users\I812624\dev\mrp\src>python manage.py migrate
Operations to perform:
Synchronize unmigrated apps: django_filters, autofixture, staticfiles, message
s, smart_selects, watson, django_select2, django_countries, mptt, psycopg2, main
, crispy_forms
Apply all migrations: customer, manufacture, product, vendor, purchase, admin,
sessions, sales, flatpages, sites, item, contenttypes, production, auth, regist
ration, inventory
Synchronizing apps without migrations:
Creating tables...
Creating table watson_searchentry
Running deferred SQL...
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "C:\Users\I812624\dev\mrp\lib\site-packages\django\core\management\__init
__.py", line 338, in execute_from_command_line
utility.execute()
File "C:\Users\I812624\dev\mrp\lib\site-packages\django\core\management\__init
__.py", line 330, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Users\I812624\dev\mrp\lib\site-packages\django\core\management\base.p
y", line 390, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Users\I812624\dev\mrp\lib\site-packages\django\core\management\base.p
y", line 441, in execute
output = self.handle(*args, **options)
File "C:\Users\I812624\dev\mrp\lib\site-packages\django\core\management\comman
ds\migrate.py", line 179, in handle
created_models = self.sync_apps(connection, executor.loader.unmigrated_apps)
File "C:\Users\I812624\dev\mrp\lib\site-packages\django\core\management\comman
ds\migrate.py", line 317, in sync_apps
cursor.execute(statement)
File "C:\Users\I812624\dev\mrp\lib\site-packages\django\db\backends\utils.py",
line 79, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "C:\Users\I812624\dev\mrp\lib\site-packages\django\db\backends\utils.py",
line 64, in execute
return self.cursor.execute(sql, params)
File "C:\Users\I812624\dev\mrp\lib\site-packages\django\db\utils.py", line 97,
in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "C:\Users\I812624\dev\mrp\lib\site-packages\django\db\backends\utils.py",
line 62, in execute
return self.cursor.execute(sql)
django.db.utils.ProgrammingError: relation "django_content_type" does not exist
【问题讨论】:
-
您的问题实际上有两个部分:1)您如何重新创建表结构? 2)你如何移动你当前的数据?如果您只是更改数据库设置并运行 manage.py migrate,会发生什么?成功运行之后,您必须找到一种方法来迁移 SQLite 表中的数据。 Google 可能再次成为您的朋友。
-
我只是在本地创建了 postgres 更改了 DB 的设置。删除以前的迁移并为每个应用手动运行 makemigration。然后在我运行迁移之后,我从问题中得到了错误。 (添加了从 shell 到问题的跟踪)
-
而且我不需要迁移内容,只需要迁移结构。
标签: django