Ошибка программирования: отношение "account_account" не существует - PullRequest
1 голос
/ 10 ноября 2019

Я улучшил регистрационную форму с помощью django-user-account == 2.1.0. На моем локальном сервере все работает нормально, но на сервере heroku я вижу следующую ошибку:

Django Version: 2.2.6
Exception Type: ProgrammingError
Exception Value:    
relation "account_account" does not exist
LINE 1: ...nt"."timezone", "account_account"."language" FROM "account_a...
Exception Location: /app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py in _execute, line 84

Я удалил базу данных и снова сделал миграцию / миграцию, это не помогло.

Релевантночасть моих settings.py:

import dj_database_url
db_config = dj_database_url.config()
if db_config:
    DATABASES['default'] =  db_config

Вывод команды migrate:

Operations to perform:
  Apply all migrations: account, admin, auth, contenttypes, sessions, my_apps, sites
Running migrations:
  No migrations to apply.

DATABASE_URL также определено:

heroku config
=== Config Vars
DATABASE_URL:        postgres://bvki...longrul

Здесь я пытаюсь получить таблицу "account_account ":

>manage.py dbshell
SQLite version 3.30.1 2019-10-10 20:19:45
sqlite> SELECT * FROM "account_account";
1||1|lt
2||2|en

В sqlite" account_account "существуют!

Но в выводе этой команды нет миграции" account "!

>heroku run python manage.py migrate
Running python manage.py migrate on ⬢ my-app... up, run.5012 (Free)
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions, my_app
Running migrations:
  No migrations to apply.
  Your models have changes that are not yet reflected in a migration, and so won't be applied.
  Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.

1 Ответ

0 голосов
/ 11 ноября 2019

Это не похоже на ваш makemigrations / migrate, потому что это говорит о том, что таблица не существует.

(1) Выполните makemigrations и migrate,и убедитесь, что вы работаете с правильными настройками, чтобы запустить его на сервере Heroku. (2) Запустите python manage.py dbshell со своими настройками для сервера Heroku и посмотрите на существующие таблицы (\dt в PostgreSQL). account_account существует?

...