我正在尝试扩展基于烧瓶的项目https://github.com/hack4impact/flask-base/tree/master/app。
我已经使用flask-migrate为我的本地sqlite db创建了迁移。
我现在需要从本地sqlite db迁移到heroku的postgres。在https://www.quora.com/What-is-the-best-way-to-copy-my-SQLite-database-to-PostgreSQL-so-I-can-deploy-it-to-Heroku之后,我正在尝试设置一个名为'test'的本地postgres数据库(截图)
我设置:
os.environ["TEST_DATABASE_URL"] = "postgresql+psycopg2://127.0.0.1:5432/test" # REMOVE THIS !!!!!!!!!!
config.py中有一个包含以下内容的测试配置:
class TestingConfig(Config):
TESTING = True
SQLALCHEMY_DATABASE_URI = os.environ.get('TEST_DATABASE_URL') or \
'sqlite:///' + os.path.join(basedir, 'data-test.sqlite')
print('TestingConfig - psgres?')
print(SQLALCHEMY_DATABASE_URI)
WTF_CSRF_ENABLED = False
但是,当我使用flask-migrate执行升级时:
$ python manage.py db upgrade
TestingConfig - psgres?
postgresql+psycopg2://127.0.0.1:5432/test
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
INFO [alembic.runtime.migration] Running upgrade -> 78401e355127, empty message
创建一个新的sqlite数据库。显然我没有连接到postgres测试数据库。我怎样才能使这个工作?
答案 0 :(得分:0)
在这种情况下,最初没有识别环境变量,但是当我重新启动后,他们确实开始工作了。
os.environ["TEST_DATABASE_URL"] = "postgresql://postgres@127.0.0.1:5432/postgres"
的工作。
答案 1 :(得分:0)
我也在做迁移,我在短文中记录了它: