行业知识
Flask框架中如何进行数据库的迁移
2026-10-30 07:57:34
来源:互联网转载
Flask框架中如何进行数据库的迁移
Flask���架中进行数据的迁移需要安装Flask-Migrate插件
安装命令:pip install flask-migrate
定义ORM模型
from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyfrom flask_migrate import Migrateapp = Flask(__name__)# 数据库的配置变量HOSTNAME = '127.0.0.1'PORT = '3306'DATABASE = 'zzh_flask'USERNAME = 'root'PASSWORD = 'root'DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)# 将这个定义好的数据库连接字符串DB_URI,通过`SQLALCHEMY_DATABASE_URI`这个key名配置到`app.config`中。app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI# 设置是否每次数据库修改都跟踪app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True# 使用`flask_sqlalchemy.SQLAlchemy`这个类定义一个对象,并将`app`传入进去。db = SQLAlchemy(app)# 创建一个migrate对象migrate = Migrate(app, db)# 定义ORM模型class User(db.Model): __talblename__ = 'user' id = db.Column(db.Integer, primary_key=True, autoincrement=True) username = db.Column(db.String(200), nullable=False)class Article(db.Model): __tablename__ = 'article' id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(200), nullable=False) content = db.Column(db.Text, nullable=False) # 外键 # 1.外键的数据类型一定要看,所引用的字段的类型 # 2.db.ForeignKey("表名.字段名") # 3.外键是属于数据库层面的,不推荐直接在ORM中使用 # db.ForeignKey声明这个字段是外键 author_id = db.Column(db.Integer, db.ForeignKey("user.id")) # relationship # 1.第一个参数是模型的名字,必须要和模型的名字保持一致 # 2.backref(back reference):代表反向引用,"articles"代表对方访问我的时候的字段名称,前提是在前面已经关联了一个外键 # 这里的作用就是通过作者访问他的所有文章,例如user.articles author = db.relationship("User", backref="articles")class UserExtension(db.Model): __tablename__ = 'user_extension' id = db.Column(db.Integer, primary_key=True, autoincrement=True) school = db.Column(db.String(100)) user_id = db.Column(db.Integer, db.ForeignKey("user.id")) # db.backref # 1.在反向应用的时候需要传递一些其他的参数,那么就需要用到这个函数,如果不需要使用,只要在relationship的backref参数上,设置反向引用的名称就可以了 # 2.uselist=False代表反向引用的时候,不是一个列表,而是一个对象,就是只能查到一个,一对一 user = db.relationship("User", backref=db.backref("extension", uselist=False))if __name__ == '__main__': app.run() 进行模型迁移
①flask db init
②flask db migrate
③flask db upgrade
其中第二步flask db migrate时可以写成flask db migrate -m "first commit",这样写是可以在迁移脚本的时候注明修改了什么。添加的备注会在迁移脚本中体现
当ORM模型被修改之后,例如我给User添加了一个password字段,那如何迁移
,此时就不要init了,直接 flask db migrate -m "add password",flask db upgrade即可
参考:https://www.zlkt.net/book/detail/10/297
上一篇:饥荒联机非主机怎么用控制台
下一篇:服务器带宽少了怎么办?