使用Flask-Migrate的flask db migrate命令后,并没有按照我预想的那样,生成对应的版本文件,反而给了这么一条信息。
我的模型文件
class User(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=False)
name = db.Column(db.String(128), nullable=False)
password = db.Column(db.String(128), nullable=False)
def __str__(self):
return f'用户名是:{self.username},密码是:{self.password}'
我的app文件
from apps import create_app
from flask_migrate import Migrate
from extend import db
app = create_app()
migrate = Migrate(app=app, db=db)
@app.route('/')
def hello_world(): # put application's code here
return 'Hello World!'
if __name__ == '__main__':
app.run()
尝试
PS E:\Projects-Pycharm\flaskProject1> flask db init
Creating directory E:\Projects-Pycharm\flaskProject1\migrations ... done
Creating directory E:\Projects-Pycharm\flaskProject1\migrations\versions ... done
Generating E:\Projects-Pycharm\flaskProject1\migrations\alembic.ini ... done
Generating E:\Projects-Pycharm\flaskProject1\migrations\env.py ... done
Generating E:\Projects-Pycharm\flaskProject1\migrations\README ... done
Generating E:\Projects-Pycharm\flaskProject1\migrations\script.py.mako ... done
Please edit configuration/connection/logging settings in 'E:\\Projects-Pycharm\\flaskProject1\\migrations\\alembic.ini' before proceeding.
PS E:\Projects-Pycharm\flaskProject1> flask db migrate
INFO [alembic.runtime.migration] Context impl MySQLImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
INFO [alembic.env] No changes in schema detected.
migration文件夹生成了,但当我准备迁移同步的时候,却没有效果
解决方式
重点重点重点,模型类写完后需要导入到app文件中
from apps.user.model import User # 重点,写了模型之后,需要导入
虽然在Pycharm中这个导入语句是灰色的,但必不可少!