概述:Flask使用2.0版本之后,不支持MigrateCommnd命令
解决方法
- demo目录结构
说明:
- config是一些配置信息
DEBUG = True
DIALECT = 'mysql'
DRIVER = 'mysqldb'
USERNAME = '用户名'
PASSWORD = '密码'
HOST = '127.0.0.1'
PORT = '3306'
DATABSE = '数据库'
SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT,DRIVER,USERNAME,PASSWORD,HOST,PORT,DATABSE)
SQLALCHEMY_TRACK_MODIFICATIONS = False
- ets.py用来解决循环引用问题
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
- module.py存放模型
app.config.from_object(config)
# db绑定app
db.init_app(app)
# 绑定app和 db
migrate = Migrate(app,db)
@app.route('/')
def hello_world():
engine = db.get_engine()
with engine.connect() as conn:
result = conn.execute("select 1")
print(result.fetchone())
return 'Hello World!'
if __name__ == '__main__':
app.run()
- 打开命令行窗口(这里使用的pycharm自带的)
-
因为主程序不是在app.py 文件中,所以需要指定主文件
set FLASK_APP=Flask_migrate_demo.py
-
使用
flask db init # 初始迁移数据 flask db migrate # 映射 flask db upgrade # 更新
会在数据库中形成以下两个表
-