Django:SQLite在从本地开发推动时重写heroku上的POSTGRESQL数据库

Django:SQLite在从本地开发推动时重写heroku上的POSTGRESQL数据库,django,sqlite,postgresql,heroku,django-models,Django,Sqlite,Postgresql,Heroku,Django Models,所以我在本地做了一个更改,然后推到github和heroku,然后当我访问我的live heroku项目时,我注意到数据库奇怪地恢复到了我在本地开发期间拥有的对象 这很可能是因为我没有正确设置heroku postgresql数据库(这是我第一次使用django设置heroku postgresql) 以下是mySettings.py中的一个片段,请假设括号中的信息: ON_HEROKU = os.environ.get('ON_HEROKU') HEROKU_SERVER = os.envir

所以我在本地做了一个更改,然后推到github和heroku,然后当我访问我的live heroku项目时,我注意到数据库奇怪地恢复到了我在本地开发期间拥有的对象

这很可能是因为我没有正确设置heroku postgresql数据库(这是我第一次使用django设置heroku postgresql)

以下是mySettings.py中的一个片段,请假设括号中的信息:

ON_HEROKU = os.environ.get('ON_HEROKU')
HEROKU_SERVER = os.environ.get('HEROKU_SERVER')


if ON_HEROKU:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2',
            'NAME': '<the name is here>',
            'USER': '<user is here>',
            'PASSWORD': '<password is here>',
            'HOST': '<host is here>',                      
            'PORT': '<port is here>',   
        }
    }
else:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
            'USER': '',
            'PASSWORD': '',
            'HOST': '',                      
            'PORT': '',  
        }
    }
作为记录,我第一次运行syncdb时,它似乎从未设置新用户,而只是试图安装更多的表。我不知道为什么,但这似乎是个危险信号

我还运行了以下命令来检查postgres db是否存在:

(venv)$ heroku addons --account personal | grep POSTGRES
heroku-postgresql:hobby-dev  HEROKU_POSTGRESQL_COBALT

尽管一切看起来都很好,但我的项目是在live上使用SQLite db。我一定错过了什么。谢谢你的建议。如果需要,我可以显示更多内容。

Heroku没有提供关于\u Heroku环境变量的
。除非你自己设置,否则这不会起作用


但是,无论如何,您不应该在设置中硬编码生产数据库值。如上所述,这些值是由环境变量提供的,应该使用dj数据库url库将其自动转换为正确的设置。因此,您可以使用有无
DATABASE\u URL
env var在硬编码的sqlite设置和动态生产设置之间切换,或者更好地在本地开发环境中设置一个
DATABASE\u URL
,指向您的sqlite文件。

我一直在阅读关于不硬编码的方法的文章,但是我想我对如何建立一个数据库URL感到困惑。你认为你可以链接到一个例子吗,heroku文档实际上是不够的。至于'ON_HEROKU'变量,我在其他堆栈中也看到过,我不知道它不起作用。
(venv)$ heroku addons --account personal | grep POSTGRES
heroku-postgresql:hobby-dev  HEROKU_POSTGRESQL_COBALT