Mse*_*enb 9 python deployment django postgresql heroku
所以我正在跟随django的heroku入门指南.但是,当我运行此命令时:
heroku run python manage.py syncdb
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
psycopg2.OperationalError: could not connect to server: Connection refused
Is the server running on host "localhost" and accepting
TCP/IP connections on port 5432?
Run Code Online (Sandbox Code Playgroud)
我认为这意味着数据库尚未设置...所以我手动添加了shared_db选项:
heroku addons:add shared-database:5mb
Run Code Online (Sandbox Code Playgroud)
但是..我仍然得到同样的错误.是什么赋予了?
编辑:
正如@mipadi在这里指出的那样(http://stackoverflow.com/questions/13001031/django-heroku-settings-injection/13092534),它实际上可以像这样简单:
import dj_database_url
DATABASES = {'default' : dj_database_url.config() }
Run Code Online (Sandbox Code Playgroud)
如果您有一个DATABASE_URL env变量集,则此方法有效.heroku:pg_promote让你在那里.详情如下
确保你的Heroku上有Postgres
heroku addons:add heroku-postgresql:dev
Run Code Online (Sandbox Code Playgroud)
第1步:找出您的数据库网址
heroku config | grep POSTGRESQL
Run Code Online (Sandbox Code Playgroud)
输出看起来像这样:
HEROKU_POSTGRESQL__URL:postgres:// user:password @ host:5432/blabla
第2步:从上一步骤中获取设置名称(例如HEROKU_POSTGRESQL_ROSE_URL)并将其放入您的设置文件中
DATABASES = {'default': dj_database_url.config(default=os.environ["HEROKU_POSTGRESQL_ROSE_URL"])}
Run Code Online (Sandbox Code Playgroud)
[更新]正如Ted指出的那样,有一种方法可以将颜色URL提升为DATABASE_URL变量:
heroku pg:promote HEROKU_POSTGRESQL_ROSE_URL
Run Code Online (Sandbox Code Playgroud)
然后,您的数据库设置可以使用DATABASE_URL,而不是更奇特的彩色URL
DATABASES = {'default': dj_database_url.config(default=os.environ["DATABASE_URL"])}
Run Code Online (Sandbox Code Playgroud)
鲍勃是你的叔叔
我的应用程序结构已关闭...heroku 希望结构如下所示:
toplevel
requirements.txt
myapp
manage.py
all other django stuff
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4666 次 |
最近记录: |