flask 数据迁移
在Flask中使用数据库迁移,通常我们会结合SQLAlchemy和Alembic来管理数据库的迁移。以下是一个基本的数据迁移流程:
-
安装Flask-Migrate:
-
pip install Flask-Migrate
-
-
配置Flask应用和数据库:
from flask import Flask from flask_sqlalchemy import SQLAlchemy from flask_migrate import Migrate app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://user:password@localhost/database' db = SQLAlchemy(app) migrate = Migrate(app, db)
以下是一个简单的示例,演示了如何在Flask应用中使用SQLAlchemy和Alembic进行数据库迁移。
from flask import Flask from flask_sqlalchemy import SQLAlchemy from flask_migrate import Migrate app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'pymysql://user:password@localhost/database' db = SQLAlchemy(app) # 定义模型 class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) def __repr__(self): return '<User %r>' % self.username # 初始化迁移 Migrate(app, db) # 如果是第一次运行,需要初始化迁移环境 # $ flask db init # 创建迁移脚本 # $ flask db migrate -m "initial migration" # 应用迁移 # $ flask db upgrade # 回滚迁移 # $ flask db downgrade if __name__ == '__main__': app.run()