我正在尝试将我的Flask项目与Alembic 我的应用程序结构集成在一起
Flask
Alembic
project/ configuration/ __init__.py dev.py test.py core/ # all source code db/ migrations/ __init__.py alembic.ini env.py versions/
当我尝试从db目录运行以下命令时,我看到
db
File "migration/env.py", line 55, in run_migrations_online from configuration import app, db ImportError: No module named configuration
我尝试了“为自动生成迁移请求一个简单的Alembic工作示例”中提到的解决方案,但它对我不起作用
我的env.py run_migrations_online()改变方法是
env.py
run_migrations_online()
def run_migrations_online(): """Run migrations in 'online' mode. In this scenario we need to create an Engine and associate a connection with the context. """ import os import sys sys.path.append(os.getcwd()) from configuration import app, db alembic_config = config.get_section(config.config_ini_section) alembic_config['sqlalchemy.url'] = app.config['SQLALCHEMY_DATABASE_URI'] target_metadata = db.metadata engine = engine_from_config( alembic_config, prefix='sqlalchemy.', poolclass=pool.NullPool) connection = engine.connect() context.configure( connection=connection, target_metadata=target_metadata ) try: with context.begin_transaction(): context.run_migrations() finally: connection.close() if context.is_offline_mode(): run_migrations_offline() else: run_migrations_online()
我怎样才能解决这个问题?
我做到export PYTHONPATH=<path_to_project>了,再次运行了命令,它成功运行了
export PYTHONPATH=<path_to_project>