Sqlalchemy数据迁移
场景
已经创建了数据库模型,并且生成了数据表,数据表里已经有了数据,如果此时模型增加或删除了字段后,想要重新作用于表的话就会有2种方式
- 第一种:删除之前数据库的表,然后重新运行模型生成对应的数据库表,这种方式最快。但是当表里有数据的话,这种方式就不合时宜了,因为数据要被删除掉
- 第二种:使用alembic进行数据迁移
Alembic的基本使用
-
安装alembic库
pip install alembic
-
初始化alembic仓库
进入项目路径,运行alembic init alembic(名称可以更改,但是推荐直接使用alembic)
-
修改alembic.ini 文件,找到sqlalchemy.url修改为对应的数据库连接底座
如:sqlalchemy.url =mysql+pymysql://root:123456@192.168.3.7:3306/test?charset=utf8
-
修改生成的alembic目录下env.py文件
#导入模型文件 from back.models import Base target_metadata = Base.metadata
-
生成迁移文件
#-m 后面为生成的迁移文件后缀,可以理解为注释方便理解做了什么更改,注意不要有空格 alembic revision --autogenerate -m "addColumnTest"
-
上一步完成后,并没有实际作用于数据库,还需要进行执行迁移
alembic upgrade head
本文来自博客园,作者:弩哥++,转载请注明原文链接:https://www.cnblogs.com/bangbangzoutianya/p/16654722.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」