flask中数据库迁移

flask中数据库迁移flask 中数据库迁移 1 在 flask 开发过程中 需要修改数据库模型 而且还要在修改之后更新数据库 最直接的方式就是删除旧表 但这样会丢失数据 2 更好的解决办法是使用数据迁移框架 他可以追踪数据库模式的变化 然后把变动应用到数据库中 3 在 Flask 中可以使用 flask migrate 扩展 来实现数据迁移 并且集成到 flask scrpit 中 所有操作通过命令就能完成 4 为导出数据库迁移命令 flask migrate 提供一个 migrateComma 类 可以附加到 flask script 的 m

flask中数据库迁移

database_migrate.py

import pymysql from flask import Flask from flask_migrate import Migrate,MigrateCommand from flask_script import Manager from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) manager = Manager(app) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:mysql@127.0.0.1:3306/Flask_test' app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True db = SQLAlchemy(app) pymysql.install_as_MySQLdb() # TODO 解决:Mysqldb 不兼容 python3.5 以后的版本 # 第一个参数是flask的实现,第二个参数是sqlalchemy数据库实例 migrate = Migrate(app,db) # manager是flask-scriptde 实例,这条语句在flask-script中添加一个db命令 manager.add_command('db',MigrateCommand) # 定义模型Role class Role(db.Model): # 定义表名 __tablename__ = 'roles' # 定义列对象 id = db.Column(db.Integer,primary_key=True) name = db.Column(db.String(64),unique=True) user = db.relationship('User',backref='role') # repr() 方法显示一个可读字符串 def __repr__(self): return 'Role:'.format(self.name) # 定义用户 class User(db.Model): __tablename__ = 'users' id = db.Column(db.Integer,primary_key=True) username = db.Column(db.String(64),unique=True,index=True) # 设置外键 role_id = db.Column(db.Integer,db.ForeignKey('roles.id')) def __repr__(self): return 'User:'.format(self.username) if __name__ == '__main__': manager.run() 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178535.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午5:04
下一篇 2026年3月26日 下午5:05


相关推荐

  • Z-Image-GGUF开源大模型部署教程:Linux+RTX4090D环境从零搭建全流程

    Z-Image-GGUF开源大模型部署教程:Linux+RTX4090D环境从零搭建全流程

    2026年3月12日
    2
  • 如何利用Javascript发送GET/POST请求「建议收藏」

    如何利用Javascript发送GET/POST请求「建议收藏」如何利用Javascript发送GET/POST请求最近在做基于TWS的分析系统,因为采用Flask+Java的技术架构方案,所以需要开发Web,然而我自己没有做过类似的开发,所以很多工作是从头开始学着做的。因此,在实现表单数据提交的时候,当时就想到个问题,如果一个页面里内容足够多的话,仅用form提交的话,后台就需要做非常复杂的判断,以此确认用户提交的是哪类数据,这样工程不仅难看,而且低效。于是咨

    2022年5月17日
    37
  • BigDecimal类的简单使用方法

    BigDecimal类的简单使用方法

    2021年12月14日
    55
  • java bytebuffer flip_java string转byte

    java bytebuffer flip_java string转byteimportjava.nio.ByteBuffer;importjava.nio.ByteOrder;publicclassbytebuffertest{publicstaticvoidmain(String[]args){//CreateaByteBufferusingabytearraybyte[]bytes=newbyte[10];Byt

    2022年10月2日
    8
  • jquery-uploadfile的使用「建议收藏」

    jquery-uploadfile的使用「建议收藏」jQueryFileUpload是一个Jquery文件上传组件,支持多文件上传、取消、删除,上传前缩略图预览、列表显示图片大小,支持上传进度条显示;支持各种动态语言开发的服务器端。官网链接:点击打开链接特点:拖放支持;上传进度条;图像预览;可定制和可扩展的;兼容任何服务器端应用平台(PHP,Python,RubyonRails,Java,Node.js,Goetc.)。使用方…

    2022年6月15日
    72
  • VMWare的P2V、V2V使用「建议收藏」

    VMWare的P2V、V2V使用「建议收藏」1.测试环境2.软件安装双击安装文件,依次点击”下一步”,如下图:3.软件参数修改4.将物理机(192.168.80.103)转换到ESXI(192.168.80.102)在Windows10中安装vCenterConverter6转换软件,将WindowsServer2008R2或WindowsServer2012R2转换到ESXI主机。转换前注意事项:登录到…

    2022年7月14日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号