Flask SQLAlchemy无法将更新迁移到数据库表模型(建议的修复程序)

问题描述 投票:0回答:1

我在使用Flask-SQLALchemy库将更新迁移到表模型时遇到困难

对表架构进行更改后,我运行了migrate命令,并且响应表明没有更改...

$ python manage.py db migration

> INFO  [alembic.runtime.migration] Context impl PostgresqlImpl. 

> INFO  [alembic.runtime.migration] Will assume transactional DDL. 

> INFO  [alembic.env] No changes in schema detected.

models.py文件

from sqlalchemy.dialects.postgresql import JSON
from app import db


class Result(db.Model):
    __tablename__ = 'results'

    id = db.Column(db.Integer, primary_key=True)
    url = db.Column(db.String())
    datetime = db.Column(db.String())
    results = db.Column(JSON)
    errors = db.Column(JSON)


    def __init__(self, url, datetime, results, errors=None):
        self.url = url
        self.datetime = datetime
        self.results = results
        self.errors = errors


    def __repr__(self):
        return f"<id {self.id}>"

manage.py文件

import os
import json

from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand

from app import app, db


app.config.from_object(os.environ['APP_SETTINGS'])

migrate = Migrate(app, db)
manager = Manager(app)

manager.add_command('db', MigrateCommand)


if __name__ == '__main__':
    manager.run()
python flask sqlalchemy model migrate
1个回答
0
投票

来自@ dina-taklit的答案对我有用... answer to "Flask-Migrate No Changes Detected to Schema on first migration"

1.(来自Python REPL)导入迁移模型:

from flask_migrate import Migrate

2。导入应用程序,数据库对象:

from app import app, db

3。启动迁移类:

migrate = Migrate(app, db)

4。执行以下操作:

db.create_all()

5.(来自psql CLI)删除数据库

DROP DATABASE db_name;

6。再次创建它=>

CREATE DATABSE db_name OWNER owner_name;

7.(来自Ubuntu CLI)将env var指向flask应用程序文件=>

export FLASK_APP=name_app.py

8。运行迁移

python manage.py db migrate
© www.soinside.com 2019 - 2024. All rights reserved.