我的应用程序中有一个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
时没有创建任何迁移时正确返回结果?我究竟做错了什么 ?
答案 0 :(得分:0)
如果您尝试创建自动迁移脚本,则Alembic未检测到任何更改的最可能原因是更改已存在于数据库中,因此模型与数据库架构之间没有区别。尝试使用db.drop_all()
删除数据库中的所有表格,然后重试。
答案 1 :(得分:0)
要允许flask-migrate识别您的模型,请确保在env.py文件中导入模型。我在所有导入后立即导入它并且它有效。
希望有所帮助。
答案 2 :(得分:-2)
使用Alembic
进行模式迁移,它由SQLAlchemy
本身的作者创建,最适合迁移。
希望这有帮助。