当我在服务器上删除数据库时,Heroku 不会删除数据库(Django 应用程序)
Posted
技术标签:
【中文标题】当我在服务器上删除数据库时,Heroku 不会删除数据库(Django 应用程序)【英文标题】:Heroku doesn't delete database when I remove it on server (Django app) 【发布时间】:2012-09-21 02:50:25 【问题描述】:我在 Heroku 的服务器中登录了我的应用程序目录:
Heroku run bash -app appname
然后我删除了我的数据库:
Rm -r dev.db
但是,当我尝试同步我的数据库时,它不会创建新表。当我去生产站点时,它仍然有所有的数据库内容,让我登录等等。
对我做错了什么有任何见解吗?我想完全重新创建数据库。
注意:我有一个 Django 应用程序
更新:这是我的数据库设置
DATABASES =
"default":
"ENGINE": "django.db.backends.sqlite3", # Add "postgresql_psycopg2", "postgresql", "mysql", "sqlite3" or "oracle".
"NAME": PROJECT_ROOT + os.sep + "dev.db", # Or path to database file if using sqlite3.
"USER": "", # Not used with sqlite3.
"PASSWORD": "", # Not used with sqlite3.
"HOST": "", # Set to empty string for localhost. Not used with sqlite3.
"PORT": "", # Set to empty string for default. Not used with sqlite3.
然后我有这个 Heroku 的注入代码:
import dj_database_url
DATABASES = 'default': dj_database_url.config(default='postgres://localhost')
【问题讨论】:
您使用的是哪个数据库? 您可以从您的settings.py
发布数据库设置吗?
我正在使用 SQLite,当我推送到 heroku 时,它会转换为 postgreSQL。我在上面编辑了我的问题以包含数据库设置
【参考方案1】:
或者您可以通过 Heroku 插件选项卡中的 UI 来完成。您只需删除插件,DATABASE_URL 将是可编辑/可删除的。
【讨论】:
【参考方案2】:Heroku 默认为您提供 Postgres 数据库。要完全删除它,请运行:
heroku addons:remove heroku-postgresql:dev
然后创建一个新的:
heroku addons:add heroku-postgresql:dev
如果它没有自动将其提升到您的主数据库(如果是这样,您应该配置 var DATABASE_URL)然后运行:
heroku pg:promote HEROKU_POSTGRESQL_COLORHERE
【讨论】:
你太棒了。谢谢! :-) @CraigKerstiens,很好的答案,似乎计划的名称已经改变,所以对我来说有效的是使用hobby-dev
而不是dev
。以上是关于当我在服务器上删除数据库时,Heroku 不会删除数据库(Django 应用程序)的主要内容,如果未能解决你的问题,请参考以下文章