2013-10-07 130 views
0

我有一个app_db模块在我的应用烧瓶迁移不创建迁移

import os 
from flask import Flask 
from flask.ext.sqlalchemy import SQLAlchemy 
from flask.ext.script import Manager 
from flask.ext.migrate import Migrate, MigrateCommand 
from app.models.models import * 

    if os.environ.get('DATABASE_URL') is None: 
     SQLALCHEMY_DATABASE_URI = 'postgresql://ewojitxcrklhxpq:[email protected].com:5432/d7i8ucmlletq2mmv' 
    else: 
     SQLALCHEMY_DATABASE_URI = os.environ['DATABASE_URL'] 


    app = Flask(__name__) 
    app.config['SQLALCHEMY_DATABASE_URI'] = SQLALCHEMY_DATABASE_URI 
    db = SQLAlchemy(app) 

    migrate = Migrate(app, db) 
    manager = Manager(app) 
    manager.add_command('db', MigrateCommand) 


    if(__name__=='main'): 
     manager.run() 

我所有的模型类是app.models.models。我的应用程序连接到数据库,并在我运行python app_db.py db init时没有创建迁移时正确返回结果?我究竟做错了什么 ?

回答

-2

使用Alembic为Schema Migration,它由作者SQLAlchemy本身创建,它最适合迁移。

希望这会有所帮助。

+4

Flask-Migrate是一种Alembic包装。 – Miguel

0

如果你想创建一个自动迁移脚本,然后蒸馏器没有检测到任何变化的最可能的原因是,这些变化已在数据库中,所以你的模型和数据库模式没有什么区别。尝试使用db.drop_all()删除数据库中的所有表格,然后重试。

0

要允许flask-migrate识别您的模型,请确保您将模型导入到env.py文件中。我在所有进口和它工作后立即导入它。

希望有所帮助。