当我在服务器上删除数据库时,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 应用程序)的主要内容,如果未能解决你的问题,请参考以下文章

django heroku makemigrations 忽略模型的变化

Heroku 本地持久存储

Heroku 不会在 Django 中迁移模型

使用git和Heroku更新我的应用程序删除图片

Heroku 在 Django 中删除我的图像

Nginx 不会离开!如何删除它[关闭]