4

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

Spyromancer
  • 435
  • 1
  • 3
  • 10

2 Answers2

12

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

Matteo Pasini
  • 1,787
  • 3
  • 13
  • 26
0

Flask-Script is not supported anymore. Switch to the Flask CLI or downgrade Flask-Migrate to version 2.7.0, which is the last to support Flask-Script.

pip install flask-migrate==2.7.0
Md Shayon
  • 79
  • 5