flaskpycharmflask-migrate

Can't import MigrateCommand from flask_migrate


I made a manage.py file for database migration in a Flask application and I get an error when trying to import MigrateCommand. I'm using PyCharm and I'm sure the package is installed.

Code:

import os
from flask_migrate import Migrate,MigrateCommand
from flask_script import Manager
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()

Error:

Cannot find reference 'MigrateCommand' in '__init__.py' 

Edit:

Like Matteo Pasini answered Flask-Script is no longer supported and the best solution is to use Flask CLI. For anyone wondering what's the equivalent of the manage.py file using Flask CLI I suggest reading this short guide that explains it well:

https://medium.datadriveninvestor.com/migrating-flask-script-to-flask-2-0-cli-4a5eee269139


Solution

  • The MigrateCommand seems to be no longer supported: https://github.com/miguelgrinberg/Flask-Migrate/issues/407

    a possible workaround could be to install an older version of Flask-Migrate, such as:

    pip install Flask-Migrate==2.6.0
    

    or switch to the Flask CLI