我在管理与数据库迁移蒸馏器 ,并想用所产生的默认文件alembic init
没有任何修改env.py
(例如, 设置target_metadata
)或alembic.ini
(例如, 设置sqlalchemy.url
)来管理我的迁移数据库中的脚本。
例如,我想使用一个命令基于脚本如下所示:
import os
from alembic.config import Config
from alembic import command
from myapp import db
alembic_cfg = Config(os.path.join(os.path.abspath(os.path.dirname(__file__)), 'alembic.ini'))
alembic_cfg.set_main_option("sqlalchemy.url",
os.environ['DATABASE_URL'])
alembic_cfg.set_main_option("script_location",
os.path.join(os.path.abspath(os.path.dirname(__file__)), '.db_migrations'))
alembic_cfg.set_main_option("target_metadata", db.metadata) # This doesn't work!
command.revision(alembic_cfg, message='Test of new system', autogenerate=True)
command.upgrade(alembic_cfg, 'head')
这所有的作品根据需要, 除了指定的线路出现故障时,我没有看到一个方法来设置target_metadata
(不是编辑其他env.py
)。
我如何编程设置target_metadata
中(像)上面的脚本由蒸馏器需要,它采用蒸馏器的命令API?