Flask-Migrate: Don't create DB and migrations from Flask

My app.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from config import Config

app = Flask(__name__)
app.debug = True
app.config.from_object(Config)

db = SQLAlchemy(app)
from models import Users

migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)



if __name__ == '__main__':
    manager.run()

models.py

from app import db, app from datetime import date, datetime

class Users(db.Model):
    # Users
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(120), index=True, unique=True)
    last_name = db.Column(db.String(128))
    first_name = db.Column(db.String(128))
    created = db.Column(db.DateTime, default=datetime.now())
    user_days = db.relationship("Days", back_populates="user_days")
    user_tasks = db.relationship("Tasks", back_populates="user_tasks")
    user_chats = db.relationship("Chats", back_populates="user_chats")

    def __init__(self, username, last_name, first_name):
        self.username = username
        self.last_name = last_name
        self.first_name = first_name

    def __repr__(self):
        return '<User {}>'.format(self.username)

Run commands:

python app.py db init
python app.py db migrate
python app.py db upgrade

And have a problem:

Traceback (most recent call last):
  File "app.py", line 12, in <module>
    from models import Users
  File "C:\Users\vandr\PycharmProjects\telegrambot_with_flask\models.py", line 1, in <module>
    from app import db, app
  File "C:\Users\vandr\PycharmProjects\telegrambot_with_flask\app.py", line 12, in <module>
    from models import Users
ImportError: cannot import name 'Users'

Can you help me?

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 17 (8 by maintainers)

Most upvoted comments

Hm, right you are!!!

model.py

from __main__ import db, app
from datetime import date, datetime

app.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from config import Config


app = Flask(__name__)
app.debug = True
app.config.from_object(Config)

db = SQLAlchemy(app)
from models import Users, Chats, Days, Tasks

migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)

if __name__ == '__main__':
    manager.run()

main.py

from app import db, app
from models import Users, Days, Chats, Tasks

and now

python app.py db migrate
python app.py db upgrade

to create right changes…

Thank you so much!