Flask-Migrate不创建迁移

时间:2013-10-07 06:13:46

标签: python flask

我的应用程序中有一个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:wkAO8d-hdr2hGoQXYadbjMKhGR@ec2-23-23-214-211.compute-1.amazonaws.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时没有创建任何迁移时正确返回结果?我究竟做错了什么 ?

3 个答案:

答案 0 :(得分:0)

如果您尝试创建自动迁移脚本,则Alembic未检测到任何更改的最可能原因是更改已存在于数据库中,因此模型与数据库架构之间没有区别。尝试使用db.drop_all()删除数据库中的所有表格,然后重试。

答案 1 :(得分:0)

要允许flask-migrate识别您的模型,请确保在env.py文件中导入模型。我在所有导入后立即导入它并且它有效。

希望有所帮助。

答案 2 :(得分:-2)

使用Alembic进行模式迁移,它由SQLAlchemy本身的作者创建,最适合迁移。

希望这有帮助。