相关疑难解决方法(0)

Flask-Migrate 在第一次迁移时未检测到对架构的更改

我将 Flask 与 Flask-SQLAlchemy 和 Flask-Migrate 一起使用来创建应用程序,但是当我尝试创建迁移时,什么也没有发生。

我在以下位置创建了两个表app/models.py

from flask import current_app
from . import db

class Student(db.Model):
    __tablename__ = 'students'
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(64), unique=True, nullable=False)
    password_hash = db.Column(db.String(128))

    def __init__(self, **kwargs):
        super(Student, self).__init__(**kwargs)

    def __repr__(self):
        return '<Tutor {}>' % self.id

class Tutor(db.Model):
    __tablename__ = 'tutors'
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(64), unique=True, index=True)
    password_hash = db.Column(db.String(128))

    def __init__(self, **kwargs):
        super(Tutor, self).__init__(**kwargs)
    def __repr__(self):
        return '<Student %r>' % self.id
Run Code Online (Sandbox Code Playgroud)

然后我还有app/__init__.py以下代码:

from …
Run Code Online (Sandbox Code Playgroud)

python flask python-3.x flask-sqlalchemy flask-migrate

17
推荐指数
5
解决办法
1万
查看次数

Flask-Migrate 不检测表

我有以下项目结构:

项目/__init__.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

db = SQLAlchemy()
migrate = Migrate()

def create_app():
    app = Flask(__name__)
    app.config.from_object(os.environ['APP_SETTINGS'])

    db.init_app(app)
    migrate.init_app(app, db)

    return app
Run Code Online (Sandbox Code Playgroud)

运行文件

from project import create_app
app = create_app()

if __name__ == "__main__":
    app.run()
Run Code Online (Sandbox Code Playgroud)

管理文件

from flask_script import Manager
from flask_migrate import MigrateCommand
from project.models import *
from project import create_app


manager = Manager(create_app)
manager.add_command('db', MigrateCommand)

if __name__ == '__main__':
    manager.run()
Run Code Online (Sandbox Code Playgroud)

然而,当我运行以下命令时,Flask-Migrate 没有检测到任何要添加的表。

python manage.py db init
Run Code Online (Sandbox Code Playgroud)

哪些输出:

Creating directory …
Run Code Online (Sandbox Code Playgroud)

python postgresql flask flask-sqlalchemy flask-migrate

4
推荐指数
1
解决办法
5055
查看次数