Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql Alembic/Flask迁移在Heroku上运行,但不创建表_Postgresql_Heroku_Flask_Alembic_Flask Migrate - Fatal编程技术网

Postgresql Alembic/Flask迁移在Heroku上运行,但不创建表

Postgresql Alembic/Flask迁移在Heroku上运行,但不创建表,postgresql,heroku,flask,alembic,flask-migrate,Postgresql,Heroku,Flask,Alembic,Flask Migrate,我正在尝试将Flask应用程序部署到Heroku。我已推送到Heroku,可以访问我的登录页面,但任何对db的调用都会出现操作错误: 2014-01-29T12:12:31.801772+00:00 app[web.1]: OperationalError: (OperationalError) no such table: projects_project u'SELECT 使用Flask migrate,我可以成功运行本地迁移和升级: INFO [alembic.migration] C

我正在尝试将Flask应用程序部署到Heroku。我已推送到Heroku,可以访问我的登录页面,但任何对db的调用都会出现操作错误:

2014-01-29T12:12:31.801772+00:00 app[web.1]: OperationalError: (OperationalError) no such table: projects_project u'SELECT
使用Flask migrate,我可以成功运行本地迁移和升级:

INFO  [alembic.migration] Context impl PostgresqlImpl.
INFO  [alembic.migration] Will assume transactional DDL.
INFO  [alembic.migration] Running upgrade None -> 4b56d58e1d4c, empty message
当我尝试在Heroku上使用
Heroku run python manage.py db upgrade升级时
升级似乎发生了,但是上下文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 kt@gmail.com
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工作之间的明显区别之外,我不知道发生了什么,也不知道应该如何调试。谢谢。

数据库的URL取自Flask应用程序实例中的
SQLALCHEMY\u数据库\u URI
配置。这在
migrations
文件夹中创建的Alembic的
env.py
配置中发生


在将控制权移交给Flask Migrate和Alembic之前,您是否在配置中存储了
os.environ['DATABASE\u URL']
的值?似乎您有一个默认的基于SQLite的数据库,它永远不会被Heroku提供的真实数据库覆盖。

该数据库的URL取自Flask应用程序实例中的
SQLALCHEMY\u database\u URI
配置。这在
migrations
文件夹中创建的Alembic的
env.py
配置中发生


在将控制权移交给Flask Migrate和Alembic之前,您是否在配置中存储了
os.environ['DATABASE\u URL']
的值?似乎您有一个默认的基于SQLite的数据库,它永远不会被Heroku提供的真实数据库覆盖。

该数据库的URL取自Flask应用程序实例中的
SQLALCHEMY\u database\u URI
配置。这在
migrations
文件夹中创建的Alembic的
env.py
配置中发生


在将控制权移交给Flask Migrate和Alembic之前,您是否在配置中存储了
os.environ['DATABASE\u URL']
的值?似乎您有一个默认的基于SQLite的数据库,它永远不会被Heroku提供的真实数据库覆盖。

该数据库的URL取自Flask应用程序实例中的
SQLALCHEMY\u database\u URI
配置。这在
migrations
文件夹中创建的Alembic的
env.py
配置中发生


在将控制权移交给Flask Migrate和Alembic之前,您是否在配置中存储了
os.environ['DATABASE\u URL']
的值?似乎您有一个默认的基于SQLite的数据库,它永远不会被Heroku提供的真实数据库覆盖。

我实际上使用的是它,用于配置SQLALCHEMY_数据库_URI(我想)。我将尝试在没有此设置的情况下进行设置,并从os.environ手动设置。感谢Miguel,此设置成功。我不太明白为什么在Heroku配置出现之前,它显示设置了正确的数据库URL,但它不起作用。尽管如此,我现在在alembic env.py文件和我的应用程序的settings.py文件中都有SQLALCHEMY_DATABASE_URI=os.environ['DATABASE_URI']。谢谢你的帮助。期待你的书!我实际上正在使用它来配置SQLALCHEMY_数据库_URI(我想)。我将尝试在没有此设置的情况下进行设置,并从os.environ手动设置。感谢Miguel,此设置成功。我不太明白为什么在Heroku配置出现之前,它显示设置了正确的数据库URL,但它不起作用。尽管如此,我现在在alembic env.py文件和我的应用程序的settings.py文件中都有SQLALCHEMY_DATABASE_URI=os.environ['DATABASE_URI']。谢谢你的帮助。期待你的书!我实际上正在使用它来配置SQLALCHEMY_数据库_URI(我想)。我将尝试在没有此设置的情况下进行设置,并从os.environ手动设置。感谢Miguel,此设置成功。我不太明白为什么在Heroku配置出现之前,它显示设置了正确的数据库URL,但它不起作用。尽管如此,我现在在alembic env.py文件和我的应用程序的settings.py文件中都有SQLALCHEMY_DATABASE_URI=os.environ['DATABASE_URI']。谢谢你的帮助。期待你的书!我实际上正在使用它来配置SQLALCHEMY_数据库_URI(我想)。我将尝试在没有此设置的情况下进行设置,并从os.environ手动设置。感谢Miguel,此设置成功。我不太明白为什么在Heroku配置出现之前,它显示设置了正确的数据库URL,但它不起作用。尽管如此,我现在在alembic env.py文件和我的应用程序的settings.py文件中都有SQLALCHEMY_DATABASE_URI=os.environ['DATABASE_URI']。谢谢你的帮助。期待你的书!