【发布时间】:2021-07-07 20:19:36
【问题描述】:
所以我在根 Django 项目的 settings.py 中有一个正在开发的 SQLite 数据库。
settings.py 如下(关于数据库):
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
db_from_env = dj_database_url.config(conn_max_age=600)
DATABASES['default'].update(db_from_env)
但是,如您所见,我的应用已在 heroku 上启动并运行,其中的数据位于 PostgreSQL 数据库中。
我将此应用程序部署到生产的方法是 git,我有点喜欢只推送到 github 存储库然后单击 heroku 上的部署的想法。
但是,我对如何管理数据库中的这种差异感到很困惑。如果我使用 heroku-cli,似乎有很多命令可以处理数据库,但由于我只是使用 git 我真的没有想法如何去做。 这是我想知道如何通过 git 执行的等效命令列表:
$ heroku run python manage.py createsuperuser
$ heroku run python manage.py migrate
我已经尝试在开发中执行这些操作,迁移到那里然后推送到 github,但显然这只更改了 SQLite 数据库,对生产 postgresql 数据库没有任何作用。知道我应该怎么做吗?
【问题讨论】:
-
您可以通过 ssh 进入您的 heroku 环境并在那里运行 createsuperuser 命令 - 您还可以编写一个简单的脚本,如果超级用户不存在,则在部署时创建一个超级用户,并在后续部署时将其删除 - 我同意应该有更简单的方法来做到这一点
-
>您还可以编写一个简单的脚本,如果一个超级用户不存在,则在部署时创建一个超级用户,并在随后的部署中将其删除 - -----您能告诉我如何做到这一点吗?另外,谢谢你的回答
-
这不是 Git 的事情:Git 只是管理提交。你的数据库在 Git 之外(并且有充分的理由;它应该保持这种状态)。
标签: django database postgresql heroku