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使用教程相关推荐

  1. SqlAlchemy Alembic数据库升级与降级简易教程

    前言 通常我们会将我们的代码放入到某个VCS(版本控制系统)中,进行可追溯的版本管理.一个项目除了代码,通常还会有一个数据库,这个数据库可能会随着项目的演进发生变化,甚至需要可以回滚到过去的某个状态, ...

  2. 从头开始学python教程_怎样开始自学Python?

    Python是一个通用编程语言,并很快成为每个自重程序员宝库中的一个必需品. Python中有数不清的Web框架,从基本bai的微小架构到完整的架构,它们自有各自的优点.那么你准备使用它来做一些web ...

  3. sqlalchemy mysql_SQLAlchemy简明教程

    原文可见:SQLAlchemy简明教程 - Jiajun的编程随想 SQLAlchemy是Python中常用的一个ORM,SQLAlchemy分成三部分: ORM,就是我们用类来表示数据库schema ...

  4. OverIQ 中文系列教程【翻译完成】

    原文:OverIQ Tutorials 协议:CC BY-NC-SA 4.0 阶段:机翻(1) 人最大的痛苦就是说一些自己都不相信的话.--燕京学堂鹿会 在线阅读 在线阅读(Gitee) Apache ...

  5. flask mysql环境配置_Flask教程4:数据库

    Flask中的数据库 Flask并不原生支持数据库,而是通过Python包以及Flask数据库插件. 数据库分为关系型数据库和非关系型数据库,这里我们使用关系型数据库.我们使用Flask-SQLAlc ...

  6. maya python插件_Maya Python - ALembic导入导出助手

    前言Abc助手其实最开始是师兄跟我提的. 我记得刚到公司的第一天,师兄就让我去研究如何实现批量将材质信息上到每个面上. 这就为这个插件的诞生慢下了伏笔. 其实就我自己而言,我当时并不太理解师兄想要实现 ...

  7. 平民级数字人up主制作技术教程

    尊重版权,谢绝转载 一.软件安装 UE4iclone版本:UE4.26.2iClone_7.92 注意:初学者一定要下载iClone_MetaHuman_Live_Link_Kit_UE4.26资源包 ...

  8. the foundry modo 15 安装教程

    modo 15是由the foundry公司推出的一款功能强大的3D建模软件,全称叫做the foundry modo 15,该软件集高级多边形细分曲面.建模.雕刻.3D绘画.动画与渲染于一体,其灵活 ...

  9. Flask从入门到做出一个博客的大型教程(五)

    Flask从入门到做出一个博客的大型教程(五) 在开始之前,先来看下项目的整体结构. flask/ ├── app │ ├── forms.py │ ├── __init__.py │ ├── mod ...

最新文章

  1. linux内核学习之三:linux中的32位与64位
  2. 检正email的格式
  3. 十四周三次课、MySQL主从配置
  4. 机器学习-LR推导及与SVM的区别
  5. 递归锁、信号量、GIL锁、基于多线程的socket通信和进程池线程池
  6. java电脑运行视频演示_javaweb视频第一天(二)
  7. win7下搭建小程序服务器,技术开发人员告诉你微信小程序怎么做
  8. python分类预测降低准确率_十分钟掌握python机器学习特征选择
  9. 分块编码(Transfer-Encoding: chunked)
  10. java数组线性查找_数组查找: 线性查找与二分查找
  11. python numpy安装失败_【Python】pip安装numpy安装到一半失败解决办法
  12. Excel工作表保护在哪里撤销?
  13. STM8使用STVD开发环境问题
  14. Qt开发 之 删除文件或文件夹到回收站(详解)
  15. 大恒相机+VS开发+Qt 跑通示例工程
  16. video标签的使用以及通过js控制视频开始与暂停
  17. Kettle 实现数据同步
  18. qt 添加Q_OBJECT报错
  19. 使用Netty实现一个小型服务器(作为数据中转站)
  20. 直线检测——Radon变换/霍夫变换/基于快速傅里叶变换的直线检测

热门文章

  1. APP界面引导页设计注意事项
  2. 赫斯曼三层交换机组建车身车间虚拟局域网
  3. CSS中绝对定位对子元素height的影响
  4. Firefox 浏览器
  5. js 实现完整版淘宝购物车
  6. 【OptiX】第2个示例 添加实时计算几何体以及计算法线等属性
  7. Java初级工程师常见面试题
  8. C#Datagidview 点击列头自动排序
  9. 中国信息价产品经理日志(3)- 接手新产品首先要做的是什么?
  10. 网络基础知识(2)——简单说说IP地址