Flask-数据库迁移

news/2024/11/16 16:49:03/

当数据库对的表结构发生变化之后,如果直接删除原有的数据,可能导致数据丢失

是为了备份表结构,而不是数据

如果想要原数据,需要使用工具,navicat,mysqlworkbench等

1、操作流程

<1>安装扩展:

pip install flask_script

pip install flask_migrate

<2>导入:

from flask_script import Manager

from flask_migrate imporrt Migrate,MigrateCommand

<3>通过Manager 类创建对象,管理app

manager = Manager(app,db)

<4>使用Migrate关联db, app

Migrate(app,db)

<5>给manager 添加一条操作命令

manager.add_command('db', MigrateCommand)

<6>相关迁移命令:

生成迁移文件夹,执行一次就可:python xxx.py db init

将模型类生成迁移脚本,若是模型类有变化,再次执行: python xxx.py db migrate -m "注释"

将迁移脚本更新到数据库中,若是模型类有变化,再次执行:python xxx.py db upgrade

<7>其他命令

查看最新版本命令:Python xxx.py db show

查看当前版本命令:Python xxx.py db current

查看所有历史版本:Python xxx.py db history

from flask import Flask
from flask_script import Manager
from flask_migrate import Migrate,MigrateCommand
from flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:abin0033@127.0.0.1:3306/mydatabase'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Falsedb = SQLAlchemy(app)manager = Manager(app)
Migrate(app, db)
manager.add_command('db', MigrateCommand)class Student(db.Model):id = db.Column(db.Integer, primary_key=True)name = db.Column(db.String(32))@app.route('/')
def index():return 'hello'if __name__ == "__main__":manager.run()


http://www.ppmy.cn/news/249146.html

相关文章

SAP从入门到放弃系列之pMRP

最近学习pMRP&#xff0c;查了很多博客&#xff0c;机翻一篇内容非常详细的文章&#xff0c;感谢大佬&#xff1a; 原文地址&#xff1a; pMRP–Predictive Material and Resource Planning in SAP S/4HANA : Step by Step execution pMRP https://blogs.sap.com/2020/04/14/p…

一款轻量级的JSON解析库,用cJSON让你看清王者荣耀

JSON是一种轻量级的数据格式&#xff0c;应用广泛。在C/C应用中也常常作为配置文件或者数据的存储 JSON语法规则 JSON对象是一个无序的"名称/值"键值对的集合&#xff1a; 以"{“开始&#xff0c;以”}"结束&#xff0c;允许「嵌套使用」&#xff1b; 每…

CS8900A-IQ3Z

CS8900A-IQ3Z 制造商&#xff1a;Cirrus logic 无铅情况/RoHs 无铅/符合RoHs 技术参考 工作温度 -40C ~ 85C 封装/外壳 100-LQFP 协议 以太网 功能 控制器 接口 ISA 标准 10 Base-T PHY 电压 - 电源 3V&#xff0c;5V 电流 - 电源 95mA

arduino控制JQ8900-16P语音模块

首先要感谢stm32通过 一线串口通信控制JQ8900-16P语音模块的作者 我就是根据这位博主的代码改写的&#xff0c;但是碰到了意想不到的问题。其实代码是写对了&#xff0c;语音模块是单独供电&#xff0c;这个供电的地要和arduino的地共用。&#xff08;我第一天测试的时候其实也…

51单片机与JQ8900语音播报模块

51单片机JQ8900通信 51单片机串口通信方式实现功能实现功能接线图实物 51单片机 使用的是普中51-单核-A5的板子 串口通信方式 、 实现功能 测试语音播报模块一线串口模式。 在上位机&#xff08;电脑&#xff09;端输入字符1&#xff08;通过串口调试助手&#xff09;&…

(转)嵌入式系统中常见的网卡驱动比较(CS8900A,RTL8019,DM9000)

1. CS8900A CS8900芯片是Cirrus Logic公司生产的一种局域网处理芯片&#xff0c;在嵌入式领域中使用非常常见。它的封装是100-pin TQFP&#xff0c;内部集成了在片RAM、10BASE-T收发滤波器&#xff0c;并且提供8位和16位两种接口。CS8900与ARM芯片按照16位方式连接&#xf…

Linux-2.6.20的cs8900驱动分析(一)

本博客转载于&#xff1a;http://blog.chinaunix.net/xmlrpc.php?rblog/article&uid22535114&id1773574 一、初始化阶段 网络初始化被调用的路径为&#xff1a; init->do_basic_setup->do_initcalls->net_olddevs_init->ethif_probe2->probe_list2-&g…

NANO2410 CS8900 debugging

1. 内核启动过程中CS8900驱动始终没有加载 最终发现跟device注册有关&#xff0c;修改mach_smdk2410.c文件如下&#xff1a; /* CS8900 */static struct resource s3c_cs89x0_resources[] {[0] DEFINE_RES_MEM(0x19000000, SZ_1M),[1] DEFINE_RES_IRQ(IRQ_EINT9), };stati…