flask db init 导致“KeyError: 'migrate'

Luk*_*uke 2 python sqlalchemy migrate flask

我已经创建了一个数据库并添加了 2 个表(场地、艺术家)。

这是来自我的 app.py 的派对:

import json
import dateutil.parser
import babel
from flask import Flask, render_template, request, Response, flash, redirect, url_for
from flask_moment import Moment
from flask_sqlalchemy import SQLAlchemy
import logging
from logging import Formatter, FileHandler
from flask_wtf import Form
from forms import *
from flask_migrate import Migrate
#----------------------------------------------------------------------------#
# App Config.
#----------------------------------------------------------------------------#
app = Flask(__name__)
moment = Moment(app)
app.config.from_object('config')
db = SQLAlchemy(app)
# TODO: connect to a local postgresql database
##Done via the config file
#----------------------------------------------------------------------------#
# Models.
#----------------------------------------------------------------------------#
#Migrate
migrate =(app,db)
class Venue(db.Model):
    __tablename__ = 'venue'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String)
    city = db.Column(db.String(120))
    state = db.Column(db.String(120))
    address = db.Column(db.String(120))
    phone = db.Column(db.String(120))
    image_link = db.Column(db.String(500))
    facebook_link = db.Column(db.String(120))
    # TODO: implement any missing fields, as a database migration using Flask-Migrate
class Artist(db.Model):
    __tablename__ = 'artist'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String)
    city = db.Column(db.String(120))
    state = db.Column(db.String(120))
    phone = db.Column(db.String(120))
    genres = db.Column(db.String(120))
    image_link = db.Column(db.String(500))
    facebook_link = db.Column(db.String(120))
Run Code Online (Sandbox Code Playgroud)

在我的配置文件中,我创建了连接。

如果我尝试在我的 app.py 和所有其他文件所在的目录中运行“flask db init”,我会收到以下错误:

directory = current_app.extensions['migrate'].directory

KeyError: 'migrate'
Run Code Online (Sandbox Code Playgroud)

我试了几个小时知道但到目前为止没有找到解决方案。我究竟做错了什么?请帮我。

小智 11

我认为您应该添加以下代码:

migrate = Migrate(app, db) # this
Run Code Online (Sandbox Code Playgroud)

有关更多信息,您可以查看此链接