【发布时间】:2021-11-29 12:47:46
【问题描述】:
我只是将我的 Django 应用程序部署到 Heroku,但我无法将我的迁移迁移到 Heroku。首先我运行:
heroku run python manage.py migrate 所有迁移列表都正常,但是当我显示迁移时,它们都没有迁移(全为空白 [])。
然后我尝试heroku run bash 并从那里迁移,一切似乎都很好,即使来自 bash 的显示迁移显示所有迁移都在工作。我什至设法创建了一个超级用户。但是当我打开我的管理页面并使用超级用户登录时,它显示“account.account”表不存在,当我再次检查 showmigrations 时,所有迁移都消失了。我一遍又一遍地重复这种迁移,但仍然无法弄清楚。
有人知道我在这里做错了什么吗?
编辑: 我不知道这是否相关,但是当我第一次将我的项目推送到 Heroku 时,我正在使用带有此设置的 Postgre:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': DB_NAME,
'USER': DB_USER,
'PASSWORD': DB_PASSWORD,
'HOST': 'localhost',
'PORT': '5432',
}
}
但是当我尝试运行迁移时,它显示了一个错误,例如无法使用 5432 端口访问本地主机,结果表明 Heroku 试图在我的本地主机中访问 postgre 而不是使用 Heroku Postgres。我找到的解决方案是转储我的数据库并将其重新加载到 Heroku。因为我不知道如何设置它。我只是评论该 postgre 设置并将其替换为默认 django 设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
创建我的 dbsqlite 文件,再次运行迁移,然后再次将其推送到 Heroku,希望找到一个简单的方法,但结果却遇到了这个问题
【问题讨论】:
标签: django heroku django-migrations