Alembic使用教程
1.创建存放数据表的包modles>user.py的样本,代码如下:
user.py
from sqlalchemy import Column, Integer, Stringfrom app.db.base_class import Baseclass User(Base):__tablename__ = 'users'id = Column(Integer, primary_key=True, index=True, autoincrement=True)work_number = Column(Integer, index=True, nullable=False) # 工号hash_password = Column(String(60), nullable=False) # 密码teacher_name = Column(String(20), index=True, nullable=False) # 姓名
2.然后将user.py文件导入models>__init__.py文件中,代码如下:
__init__.py
from .user import User
3.在自己的python项目环境中安装alembic。
pip install alembic
4.对alembic进行初始化。
alembic init alembic
特别注意:最后一个alembic为生成文件的名字,进行初始化的时候与项目的app文件是同级。
初始化后会生成一个alembic的文件夹和一个alembic.ini的文件(如上图)。
5.修改alembic.ini文件
在文件中添加一行version_path_separator = os 和sqlalchemy.url 地址(如下图),其他地方不需要进行更改。
6.修改alembic>env.py文件。
修改target_metadata=None,先导入自己的model文件将target_metadata修改为自己的models里的文件(看图)
model文件全部放到models包里面,这个架构我是按照fastapi作者写的那个项目写的。
4.使用命令alembic revision --autogenerate -m "备注",生成当前的版本
alembic revision --autogenerate -m "init"
5.使用命令alembic upgrade head将alembic的版本更新到最新版,然后数据库中就有user表了
alembic upgrade head
6.中models>user.py文件增加一个test字段。
from sqlalchemy import Column, Integer, String
from app.db.base_class import Baseclass User(Base):__tablename__ = 'users'id = Column(Integer, primary_key=True, index=True, autoincrement=True)work_number = Column(Integer, index=True, nullable=False) # 工号hash_password = Column(String(60), nullable=False) # 密码teacher_name = Column(String(20), index=True, nullable=False) # 姓名test = Column(String, nullable=False) # 测试
在进行上面的第4步,然后在进行第5步。这样就能更新自己新增加的字段了。
常见的错误:
详细请看:Fastpi中使用Alembic实现对数据库热更新
Alembic使用教程相关推荐
- SqlAlchemy Alembic数据库升级与降级简易教程
前言 通常我们会将我们的代码放入到某个VCS(版本控制系统)中,进行可追溯的版本管理.一个项目除了代码,通常还会有一个数据库,这个数据库可能会随着项目的演进发生变化,甚至需要可以回滚到过去的某个状态, ...
- 从头开始学python教程_怎样开始自学Python?
Python是一个通用编程语言,并很快成为每个自重程序员宝库中的一个必需品. Python中有数不清的Web框架,从基本bai的微小架构到完整的架构,它们自有各自的优点.那么你准备使用它来做一些web ...
- sqlalchemy mysql_SQLAlchemy简明教程
原文可见:SQLAlchemy简明教程 - Jiajun的编程随想 SQLAlchemy是Python中常用的一个ORM,SQLAlchemy分成三部分: ORM,就是我们用类来表示数据库schema ...
- OverIQ 中文系列教程【翻译完成】
原文:OverIQ Tutorials 协议:CC BY-NC-SA 4.0 阶段:机翻(1) 人最大的痛苦就是说一些自己都不相信的话.--燕京学堂鹿会 在线阅读 在线阅读(Gitee) Apache ...
- flask mysql环境配置_Flask教程4:数据库
Flask中的数据库 Flask并不原生支持数据库,而是通过Python包以及Flask数据库插件. 数据库分为关系型数据库和非关系型数据库,这里我们使用关系型数据库.我们使用Flask-SQLAlc ...
- maya python插件_Maya Python - ALembic导入导出助手
前言Abc助手其实最开始是师兄跟我提的. 我记得刚到公司的第一天,师兄就让我去研究如何实现批量将材质信息上到每个面上. 这就为这个插件的诞生慢下了伏笔. 其实就我自己而言,我当时并不太理解师兄想要实现 ...
- 平民级数字人up主制作技术教程
尊重版权,谢绝转载 一.软件安装 UE4iclone版本:UE4.26.2iClone_7.92 注意:初学者一定要下载iClone_MetaHuman_Live_Link_Kit_UE4.26资源包 ...
- the foundry modo 15 安装教程
modo 15是由the foundry公司推出的一款功能强大的3D建模软件,全称叫做the foundry modo 15,该软件集高级多边形细分曲面.建模.雕刻.3D绘画.动画与渲染于一体,其灵活 ...
- Flask从入门到做出一个博客的大型教程(五)
Flask从入门到做出一个博客的大型教程(五) 在开始之前,先来看下项目的整体结构. flask/ ├── app │ ├── forms.py │ ├── __init__.py │ ├── mod ...
最新文章
- 我建议你了解一点儿Serverless
- idea整合mybatis错误
- Android Listview中Button按钮点击事件冲突解决办法
- 遇到Visual Studio 当前不会命中断点.还没有为该文档加载任何符号的情况
- Hibernate or 的用法
- python3单例-python3如何运行文件夹python单例模式
- DCGAN:生成动漫头像
- 企业实战|基于Cobbler实现多版本系统批量部署
- Leetcode Contains Duplicate II
- python卷积函数_Convolution卷积算法python以numpy,Matplotlib实现
- 医药电商平台解决方案
- 4.如何靠IT逆袭大学?
- char数组存储中英文字符
- Modbus RS485 设备的串口调试
- plt.plot()函数解析(最清晰的解释)
- 专访强生医疗裴兴:后流量思维时代,医美行业迎来数字化大变局
- xcopy、rd、COPY、MD、DEL、REN 命令祥解
- win2012 文件服务器 双机热备,Windows Server 2012 R2 DHCP服务器双机热备、负载均衡
- 公安计算机保密整改落实情况报告,2017年保密工作整改情况报告
- 利用python爬取京东商品的详情信息
热门文章
- 启动Charls报错“The bundled Java installation is broken. Please uninstall and reinstall Charles.”
- Linux车载导航程序,嵌入式Linux在车载导航系统中的应用.pdf
- 怎样找回全国计算机考试的准考证号
- python爬虫(八、爬取图片社的小姐姐图片并下载)
- 【NLP】用python实现文本转语音处理
- GTC-700梯温析晶测定仪,梯度炉
- 当你发现你的windows系统重装无法进入黑苹果,看这个!
- 现货属性对抗金融属性下的白糖战争
- 网易新闻客户端(高仿)
- A Convolutional Neural Network Approach for Half-Pel Interpolation in Video Coding一视频编码中半像素插值的卷积神经网络