Миграция фляги не обнаруживает models.py - PullRequest
0 голосов
/ 30 июня 2018

Я пытаюсь запустить flask migrate db в моем рабочем каталоге, и он не использует модель, которую я определил в models.py Вот код.

models.py

import sys
sys.path.append("../")

from Talks2 import db

class Talk(db.Model):
    presenter = db.Column(db.Text())
    talkType = db.Column(db.Text())
    desc = db.Column(db.Text(), primary_key=True)
    link = db.Column(db.Text())
    time = db.Column(db.Integer())

    def __repr__(self):
        return "Presenter: {}\nType: {}\nDescription:\n{}\nLink:  {}".format(self.presenter,self.talkType,self.desc,self.link)

routes.py

import sys
sys.path.append("../")

from flask import Flask, request, render_template
from Talks2 import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
migrate = Migrate(app,db)

from Talks2 import models

@app.route("/")
def index():
    return render_template("index.html")

@app.route("/add", methods=["POST"])
def add():
    person = request.form["presenter"]
    ttype = request.form["type"]
    desc = request.form["desc"]
    link = request.form["link"]
    print(person, file=sys.stderr)
    print(ttype, file=sys.stderr)
    print(desc, file=sys.stderr)
    print(link, file=sys.stderr)
    return render_template("index.html")

if __name__ == "__main__":
    app.run()

Что мне нужно изменить, чтобы он правильно генерировал скрипт?

1 Ответ

0 голосов
/ 09 июля 2018

Должно быть flask db migrate вместо flask migrate db.

Для получения дополнительной информации обратитесь к этим командам:

Чтобы создать хранилище миграции:

flask db init

Создание сценария миграции (обязательно просмотрите и отредактируйте, поскольку Alembic в настоящее время не обнаруживает каждое изменение, которое вы вносите в свои модели)

flask db migrate

Чтобы применить миграцию к базе данных

flask db upgrade

Чтобы увидеть все доступные команды, запустите эту команду:

flask db --help

Для получения дополнительной информации см. этот официальный документ .

...