首页 > 解决方案 > Django migrate 命令不会在 Heroku 上创建任何表

问题描述

它表明当我这样做时表已成功创建heroku run -a "app-name" python manage.py migrate

Running python manage.py migrate on ⬢ app_name... up, run.0000 (Free)
System check identified some issues:

...

Operations to perform:
  Apply all migrations: admin, auth, blog, contenttypes, home, sessions, taggit, wagtailadmin, wagtailcore, wagtaildocs, wagtailembeds, wagtailforms, wagtailimages, wagtailredirects, wagtailsearch, wagtailusers
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  ...

但是当我创建一个超级用户时,它告诉我没有表任何建议?我现在坚持了 3 天,所以我将不胜感激。

PS我使用heroku postgresql hobby-dev。

聚苯乙烯

  File "/app/.heroku/python/lib/python3.9/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/app/.heroku/python/lib/python3.9/site-packages/django/db/utils.py", line 90, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/app/.heroku/python/lib/python3.9/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/app/.heroku/python/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py", line 423, in execute
    return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such table: auth_user

base settings.py https://pastebin.com/DLh3KrK7
我的生产配置(settings.py

from .base import *
import dj_database_url
import environ


DEBUG = False

try:
    from .local import *
except ImportError:
    pass


environ.Env.read_env()
env = environ.Env()


DATABASES = {
    'default': env.db()
}

标签: pythondjangoherokuwagtailheroku-postgres

解决方案


重新检查您的数据库配置。错误跟踪显示它使用 sqlite 作为数据库后端,而不是预期的 Postgres:

File "/app/.heroku/python/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py", line 423, in execute

然后这会失败,因为 sqlite 数据库存储在文件系统上,并且 Heroku 上的文件系统在命令之间不是持久的 - 因此您在该migrate步骤中创建的数据库在您运行时不再存在createsuperuser


推荐阅读