Django:Postgresql 中不存在关系

Django: Relation does not exist in Postgresql

每当我 运行 python manage.py 我在 ubuntu 中的项目时,它都会抛出以下错误。我卡住了。我找不到解决方案,请帮忙。

/home/vagrant/.envs/mycars/lib/python3.4/site-packages/djorm_pgfulltext/models.py:323: RemovedInDjango18Warning: `SearchManagerMixIn.get_query_set` method should be renamed `get_queryset`.
  class SearchManager(SearchManagerMixIn, models.Manager):

Traceback (most recent call last):
  File "/home/vagrant/.envs/mycars/lib/python3.4/site-packages/django/db/backends/utils.py", line 65, in execute
    return self.cursor.execute(sql, params)
psycopg2.ProgrammingError: relation "mycars_carmake" does not exist
LINE 1: ...rmake"."name", "mycars_carmake"."country_id" FROM "mycars_ca...
                                                             ^

上述异常是以下异常的直接原因:

回溯(最近调用最后):

File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/vagrant/.envs/mycars/lib/python3.4/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/home/vagrant/.envs/mycars/lib/python3.4/site-packages/django/core/management/__init__.py", line 354, in execute
    django.setup()
  File "/home/vagrant/.envs/mycars/lib/python3.4/site-packages/django/__init__.py", line 21, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/vagrant/.envs/mycars/lib/python3.4/site-packages/django/apps/registry.py", line 115, in populate
    app_config.ready()
  File "/home/vagrant/.envs/mycars/lib/python3.4/site-packages/django/contrib/admin/apps.py", line 22, in ready
    self.module.autodiscover()
  File "/home/vagrant/.envs/mycars/lib/python3.4/site-packages/django/contrib/admin/__init__.py", line 23, in autodiscover
    autodiscover_modules('admin', register_to=site)
  File "/home/vagrant/.envs/mycars/lib/python3.4/site-packages/django/utils/module_loading.py", line 74, in autodiscover_modules
    import_module('%s.%s' % (app_config.name, module_to_search))
  File "/home/vagrant/.envs/mycars/lib/python3.4/importlib/__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2231, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2214, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2203, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1129, in _exec
  File "<frozen importlib._bootstrap>", line 1448, in exec_module
  File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
  File "/home/vagrant/mycars/apps/site/admin.py", line 7, in <module>
    from .forms import MenuSubItemAdminForm, MenuChildrenAdminForm
  File "/home/vagrant/mycars/apps/site/forms.py", line 23, in <module>
    class AdvancedSearchForm(forms.Form):
  File "/home/vagrant/mycars/apps/site/forms.py", line 24, in AdvancedSearchForm
    car_make_choices = [(car_make.id, car_make.name) for car_make in CarMake.objects.all()]
  File "/home/vagrant/.envs/mycars/lib/python3.4/site-packages/django/db/models/query.py", line 141, in __iter__
    self._fetch_all()
  File "/home/vagrant/.envs/mycars/lib/python3.4/site-packages/django/db/models/query.py", line 966, in _fetch_all
    self._result_cache = list(self.iterator())
  File "/home/vagrant/.envs/mycars/lib/python3.4/site-packages/django/db/models/query.py", line 265, in iterator
    for row in compiler.results_iter():
  File "/home/vagrant/.envs/mycars/lib/python3.4/site-packages/django/db/models/sql/compiler.py", line 700, in results_iter
    for rows in self.execute_sql(MULTI):
  File "/home/vagrant/.envs/mycars/lib/python3.4/site-packages/django/db/models/sql/compiler.py", line 786, in execute_sql
    cursor.execute(sql, params)
  File "/home/vagrant/.envs/mycars/lib/python3.4/site-packages/django/db/backends/utils.py", line 81, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)


 File "/home/vagrant/.envs/mycars/lib/python3.4/site-packages/django/db/backends/utils.py", line 65, in execute
    return self.cursor.execute(sql, params)
  File "/home/vagrant/.envs/mycars/lib/python3.4/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/home/vagrant/.envs/mycars/lib/python3.4/site-packages/django/utils/six.py", line 658, in reraise
    raise value.with_traceback(tb)
  File "/home/vagrant/.envs/mycars/lib/python3.4/site-packages/django/db/backends/utils.py", line 65, in execute
    return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: relation "mycars_carmake" does not exist
LINE 1: ...rmake"."name", "mycars_carmake"."country_id" FROM "mycars_ca...
                                                             ^

您需要将数据库迁移到最新版本:

python manage.py makemigrations 
python manage.py migrate

您通过此将模型更改应用到数据库表。

问题出在 运行 迁移中。也许迁移之间存在一些冲突。我刚刚从服务器上抓取了我的数据库并安装在 Ubuntu 的本地开发环境中。然后,我从头开始安装了所有东西。现在,它起作用了。