我正在嘗試將Heroku應用程序部署到Heroku。我已經被推到Heroku的,並且可以訪問我的登錄頁面,但到數據庫的任何調用給出了一個OperationalError:Heroku上的Alembic/Flask-migrate遷移運行但不創建表
2014-01-29T12:12:31.801772+00:00 app[web.1]: OperationalError: (OperationalError) no such table: projects_project u'SELECT
使用燒瓶遷移我可以成功運行本地遷移和升級:
INFO [alembic.migration] Context impl PostgresqlImpl.
INFO [alembic.migration] Will assume transactional DDL.
INFO [alembic.migration] Running upgrade None -> 4b56d58e1d4c, empty message
當我嘗試使用heroku run python manage.py db upgrade
在Heroku上升級似乎發生升級,但上下文impl。現在的SQLite?:
(dev01)Toms-MacBook-Pro:dev01 kt$ heroku run python manage.py db upgrade
Running `python manage.py db upgrade` attached to terminal... up, run.9069
INFO [alembic.migration] Context impl SQLiteImpl.
INFO [alembic.migration] Will assume non-transactional DDL.
INFO [alembic.migration] Running upgrade None -> 4b56d58e1d4c, empty message
運行Heroku pg:info
給出:
=== HEROKU_POSTGRESQL_PINK_URL (DATABASE_URL)
Plan: Dev
Status: available
Connections: 0
PG Version: 9.3.2
Created: 2014-01-27 18:55 UTC
Data Size: 6.4 MB
Tables: 0
Rows: 0/10000 (In compliance)
Fork/Follow: Unsupported
Rollback: Unsupported
對Heroku的升級相關的日誌:
2014-01-29T12:55:40.112436+00:00 heroku[api]: Starting process with command `python manage.py db upgrade` by [email protected]
2014-01-29T12:55:44.638957+00:00 heroku[run.9069]: Awaiting client
2014-01-29T12:55:44.667692+00:00 heroku[run.9069]: Starting process with command `python manage.py db upgrade`
2014-01-29T12:55:44.836337+00:00 heroku[run.9069]: State changed from starting to up
2014-01-29T12:55:46.643857+00:00 heroku[run.9069]: Process exited with status 0
2014-01-29T12:55:46.656134+00:00 heroku[run.9069]: State changed from up to complete
此外,heroku config
給我:
(dev01)Toms-MacBook-Pro:dev01 kt$ heroku config
=== myapp Config Vars
DATABASE_URL: postgres://xxx.compute-1.amazonaws.com:5432/da0jtkatk6057v
HEROKU_POSTGRESQL_PINK_URL: postgres://xxx.compute-1.amazonaws.com:5432/da0jtkatk6057v
where [xxx == xxx]
上下文是如何實現的。組?除了本地工作和heroku之間的這種明顯的區別之外,我無法弄清楚發生了什麼或者我應該如何調試。謝謝。
我實際上使用[Flask-Heroku](https://github.com/kennethreitz/flask-heroku/),這意味着要照顧配置SQLALCHEMY_DATABASE_URI(我認爲)。我會嘗試沒有這個設置,並從os.environ手動設置它。 – kendlete
感謝米格爾這工作。我不明白爲什麼Heroku配置似乎表明已設置正確的DATABASE_URL,但它不起作用。儘管如此,我現在在alembic env.py文件和我應用程序的settings.py文件中爲Flask配置工作了SQLALCHEMY_DATABASE_URI = os.environ ['DATABASE_URI']。謝謝您的幫助。期待您的書! – kendlete