Aay*_*rki 6 python migration flask
我有我的Flask项目层次结构a
project
??? controllers
??? models
    ??? schema.py
当我运行时python schema.py db init,migrations添加一个文件夹project而不是下models.我有一个__init__.py全部3个文件夹(为简洁起见,此处未显示).我想要migrations生成的文件夹models.我该怎么做?
Alo*_*onP 13
好吧..就像Oluwafemi所说,你可以在cli命令中将-d( - 目录)标志传递给你的经理脚本
python schema.py db init --directory models/migrations
此解决方案的问题是每次输入db命令时都必须指定迁移路径,否则会出现以下错误:
alembic.util.exc.CommandError: Path doesn't exist: 'migrations'.  Please use the 'init' command to create a new scripts folder.
配置迁移路径的更好方法是将directory参数传递给Migratemanage.py中的对象(或者在您的情况下为'schema.py').
例如:
import os
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from .application import app, db
MIGRATION_DIR = os.path.join('models', 'migrations')
migrate = Migrate(app, db, directory=MIGRATION_DIR)
manager = Manager(app)
manager.add_command('db', MigrateCommand)
if __name__ == '__main__':
    manager.run()
此外,我建议您将所有命令接口功能从'schema.py'移动到应用程序根路径中的不同python脚本(例如'manager.py'),并在模型旁边创建迁移文件夹,而不是在其中.models文件夹不应包含除数据模型对象之外的任何内容!
希望它有用..
您需要将目录选项传递给 init 命令。这可以是迁移目录的路径。默认设置为迁移。
python schema.py db init --directory models/migrations
| 归档时间: | 
 | 
| 查看次数: | 4207 次 | 
| 最近记录: |