首页 > 解决方案 > flask db init:PyCharm 中的 KeyError 'migrate'

问题描述

我在 PyCharm 中运行以下代码并获取 KeyError 'migrate'

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

basedir = os.path.abspath(os.path.dirname(__file__))
print(basedir)

app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///'+os.path.join(basedir,'data.sqllite')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)
migrate = Migrate(app, db)

然后我在命令行中运行set FLASK_APP=app_database.pyflask db init但我不断收到directory = current_app.extensions['migrate'].directory KeyError: 'migrate'错误。

我被困住了。有人可以帮忙吗?非常感谢你!

标签: pythonflasksqlalchemyflask-sqlalchemydatabase-migration

解决方案


添加 migrate = Migrate(app, db) 到init .py 解决了这个问题。(我没有意识到这对于 cli 功能和数据库初始化是必要的,假设它只与之后的数据库迁移有关。)

运行 flask db init 现在可以正常工作:


推荐阅读