2

私のコードはローカルで動作しますが、Heroku で実行しようとすると動作しません。heroku にデータベースを追加しましたが、それでも動作しません。なぜこれが起こるのかの手がかりはありますか?

import sys
import os

from flask import Flask, render_template
from flask.ext.sqlalchemy import SQLAlchemy

db_local =   #it works, just not shown here

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('DATABASE_URL', db_local)

app.secret_key = '  '  #it's a secret for a reason

db = SQLAlchemy(app)

from views import *
from model import *
db.create_all()

if __name__ == '__main__':
    port = int(os.environ.get('PORT', 5000))
    app.run(host='0.0.0.0', port=port, debug=True)

私のherokuログの一部

2013-02-19T22:29:59+00:00 app[web.1]:   File "app.py", line 23, in <module>
2013-02-19T22:29:59+00:00 app[web.1]:     from views import *
2013-02-19T22:29:59+00:00 app[web.1]:   File "/app/views.py", line 1, in <module>
2013-02-19T22:29:59+00:00 app[web.1]:     from app import db
2013-02-19T22:29:59+00:00 app[web.1]:   File "/app/app.py", line 25, in <module>
2013-02-19T22:29:59+00:00 app[web.1]:     db.create_all()
2013-02-19T22:29:59+00:00 app[web.1]:     self._execute_for_all_tables(app, bind, 'create_all')
2013-02-19T22:29:59+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/flask_sqlalchemy.py", line 822, in create_all
2013-02-19T22:29:59+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/flask_sqlalchemy.py", line 814, in _execute_for_all_tables
2013-02-19T22:29:59+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/sqlalchemy/schema.py", line 2564, in create_all
2013-02-19T22:29:59+00:00 app[web.1]:     import utils
2013-02-19T22:29:59+00:00 app[web.1]:   File "/app/utils.py", line 1, in <module>
2013-02-19T22:29:59+00:00 app[web.1]: Traceback (most recent call last):
2013-02-19T22:29:59+00:00 app[web.1]:     conn = self.contextual_connect(close_with_result=False)
2013-02-19T22:29:59+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 2490, in contextual_connect
2013-02-19T22:29:59+00:00 app[web.1]:     self.pool.connect(), 
2013-02-19T22:29:59+00:00 app[web.1]:     tables=tables)
2013-02-19T22:29:59+00:00 app[web.1]:     con = self._create_connection()
4

1 に答える 1

4

config varsの値がDATABASE_URL存在しないと思います。これは次の方法で確認できますheroku config:get DATABASE_URL --app your-app

heroku pg:info --app your-appインストールしたデータベースを調べてみてください。データベースも DATABASE_URL であることを確認してください (の出力にも表示されますpg:info)。そうでない場合は、heroku pg:promote HEROKU_POSTGRESQL_<color> --app your-appスクリプトを実行してもう一度試してください。

于 2013-02-20T01:58:27.183 に答える