use*_*824 5 python postgresql heroku flask
我是 Flask/Heroku 的新手,并使用 postgres/sqlalchemy 部署应用程序。我正在使用flask-migrate(基于alembic构建)进行数据库迁移。即使从工头开始,一切都可以在本地正常工作,但我无法在 Heroku 服务器上运行。我相信这与数据库连接和 Flask 迁移有关,但我不确定。在这里呆了好几个小时,并进行了搜索,但无济于事。我知道我犯了一个愚蠢的错误。
安装 Heroku Postgres 之前出错-
OperationalError: Could not connect to server: Connection refused Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432?
Run Code Online (Sandbox Code Playgroud)
Heroku Postgres 安装后出错 -
2014-05-16T21:26:14.408879+00:00 app[web.1]: Is the server running on host "localhost" (127.0.0.1) and accepting
2014-05-16T21:26:14.408880+00:00 app[web.1]: TCP/IP connections on port 5432?
Run Code Online (Sandbox Code Playgroud)
这是我的项目结构
myproject/
-app
-__init__.py
-forms.py
-helper.py
-views.py
-models.py
-static/
-templates/
-config.py
-run.py
-Procfile
-requirements.txt
-migrations/
Run Code Online (Sandbox Code Playgroud)
这是我的init.py:
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.script import Manager, Server
from flask.ext.migrate import Migrate, MigrateCommand
from flask.ext.admin import Admin
app = Flask(__name__)
app.config.from_object('config')
db = SQLAlchemy(app)
admin = Admin(app)
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)
from app import views, models, forms, helper
Run Code Online (Sandbox Code Playgroud)
这是我的 config.py 文件:
import os
DEBUG = True
basedir = os.path.abspath(os.path.dirname(__file__))
CSRF_ENABLED = True
CSRF_SESSION_KEY = '**********'
ADMINS = frozenset(['myemail'])
SECRET_KEY = '*******'
if os.environ.get('DATABSE_URL') is None:
SQLALCHEMY_DATABASE_URI = 'postgresql+psycopg2://******@localhost/myproject'
else:
SQLALCHEMY_DATABASE_URI = os.environ['DATABASE_URL']
Run Code Online (Sandbox Code Playgroud)
运行.py
#!/usr/bin/env python
from app import manager
manager.run()
Run Code Online (Sandbox Code Playgroud)
Procfile 最后但并非最不重要的一点是:
web: gunicorn app:app
Run Code Online (Sandbox Code Playgroud)
选择数据库 URL 时出现拼写错误:
if os.environ.get('DATABSE_URL') is None:
Run Code Online (Sandbox Code Playgroud)
代替
if os.environ.get('DATABASE_URL') is None:
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2692 次 |
最近记录: |