Flask Приложение (MySQL) - KeyError: 'migrate' - PullRequest
0 голосов
/ 03 августа 2020

Чтобы выполнить migration с помощью команд flask db init и flask db migrate, я получаю следующую ошибку: directory = current_app.extensions['migrate'].directory KeyError: 'migrate'.

Я создал объект Migrate в моем __init__.py файл, однако, по-прежнему получает указанную выше ошибку:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

from config import app_config
from flask_login import LoginManager

from flask_migrate import Migrate

# Creating Flask app.
app = Flask(__name__)

# Database variable initialisation.
db = SQLAlchemy()

login_manager = LoginManager()

def create_app(config_name):
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_object(app_config[config_name])
    app.config.from_pyfile('config.py')
    db.init_app(app)

    # Creating login manager object and initialising it.
    # Login view and message prevent a user to accessing a page they are not authorised to.
    login_manager.init_app(app)
    login_manager.login_message = "Please login to access this page."
    login_manager.login_view = "auth.login"

    migrate = Migrate(app, db)
    from app import models

    return app

Есть какие-нибудь советы по поводу того, что я делаю неправильно? Я уже просмотрел немало страниц, связанных с этой ошибкой, и внес возможные изменения.

1 Ответ

0 голосов
/ 03 августа 2020

Я нашел проблему. Вышеупомянутый класс __init__.py был полностью в порядке.

Мой config.py файл, который содержал следующий код:

SQLALCHEMY_DATABASE_URI = 'mysql+mysqlconnector://{db_user}:{my_password}@localhost/{database}'

... имел расширение format, которое не было необходимо. Я успешно обновил свою базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...