我一直在關注由Miguel Ginberg編寫的Flask書,我正在考慮如何部署我的應用程序並使用PostgresDB。Flask Postgres Heroku
在我的本地生產配置中,我必須手動進入並運行Role.insert_roles(),才能分配任何角色。
如何在Heroku中使用postgres執行此操作?事實上,你如何連接到PostgreSQL數據庫?在代碼Postgres的接管使用環境變量這是不是真的清楚:
https://github.com/miguelgrinberg/flasky/blob/master/config.py
我有一種感覺,我的應用程序只是運行SQLite和本書並不是關於如何切換真正明確。
SOLUTION: 如果你已經部署到Heroku上,你沒有改變環境變量:
- DATABASE_URI到SQLALCHEMY_DATABASE_URI
- FLASK_CONFIG = Heroku的
- FLASKY_ADMIN =您的電子郵件
然後跑在你的外殼上:
heroku run python manage.py shell
db.create_all()
db.commit()
Role.insert_roles()
那麼你可能正在從SQLite數據庫運行開發配置!
教程用途[瓶-SQLAlchemy](http://pythonhosted.org/Flask-SQLAlchemy/)。你必須改變'SQLALCHEMY_DATABASE_URI'指向你的Postgres數據庫。 – dirn
好吧,當數據庫設置正確時,你能在生產環境中運行python shell嗎?除非您將角色寫入數據庫,否則基於您的電子郵件地址的環境變量的管理員帳戶未正確配置。 'python manage.py shell',然後'role.create_all()'。你如何在heroku中做到這一點? – charlestondance