常用命令:
1、init:创建一个alembic仓库
2、reversion:创建一个新的版本
3、--autogenerate:自动将当前模型的修改,生成迁移脚本
4、-m:message,可以记录本次迁移做了哪些修改,
5、upgrade:将指定版本的迁移文件映射到数据库中,会执行版本文件中的upgrade函数,如果有多个迁移脚本没有被映射到数据库,name会执行多个映射脚本
6、head:代表最新的迁移脚本的版本号
7、downgrade:会执行指定版本的迁移文件中的downgrade函数
8、heads:展示head指向的脚本文件版本号
9、history:列出所有的迁移版本及其信息
10、current:展示当前数据库中的版本号

经典错误:
1、FAILED:Target database is not up to date
原因:heads和current不同,current落后于heads的版本
解决办法:将current移动到head上:alembic upgrade head
2、FAILED:Can't locate revision identified by 'xxxx'
原因:数据库中存在的版本号不存在迁移脚本中
解决办法:删除数据库的alembic_version表中的数据,重新执行alembic upgrade head
3、执行alembic upgrade head时报某个表已存在的错误
原因:执行这个命令的时候,会执行所有的迁移脚本,因为数据库中已经存在了这个表,然后迁移脚本中又包含了创建表的代码
解决办法:1.删除versions中所有的迁移文件、2.修改迁移文件脚本中创建表的代码为pass

准备工作

from sqlalchemy import Column, String, Integer, create_engine
from sqlalchemy.ext.declarative import declarative_base # 数据库类型+连接数据库的插件,这里使用的pymysql
DB_URI = 'mysql+pymysql://root:123456@127.0.0.1:3306/test' engine = create_engine(DB_URI)
Base = declarative_base(engine) class User(Base):
__tablename__ = 'user'
id = Column(Integer, primary_key=True, autoincrement=True)
username = Column(String(50), nullable=False) def __repr__(self):
return f'username: {self.username}' Base.metadata.drop_all() # 删除所有表
Base.metadata.create_all() # 创建表

alembic revision --autogenerate -m 'first_commit'

alembic upgrade head(最新) 、 alembic upgrade version(指定版本)

增加字段

减少字段

查看历史版本

查看当前版本

最新文章

  1. 解决Ionic的ion-slide-box 2条数据渲染问题
  2. C指针(一)
  3. Java_ToolKit用法
  4. SimpleAdapter的使用
  5. iOS学习之手势
  6. HANS123
  7. sort关于去除重复/查找非重复/查找重复/统计
  8. Linux的一些基础
  9. Angular 中得 scope 作用域梳理
  10. POJ2251Dungeon Master
  11. Codeforces Round #334 (Div. 2) B. More Cowbell 二分
  12. Git push本地代码到新建远程仓库
  13. 关于局域网内IIS部署网站,本机可访问,而网内其他用户无法访问问题的解决方法
  14. fastclick.js介绍
  15. 003 assert简述
  16. 随学随用的python-note
  17. WordPress调用特色图片地址源,去除特色图片img标签其他样式
  18. git操作+一个本地项目推到github上+注意
  19. 百度地图web api使用案例
  20. android平台修改默认语言的那点事

热门文章

  1. base64 转 Image
  2. pandas的dataframe与spark的dataframe
  3. 各种环境下搭建ruby on rails开发环境
  4. linux查看网关
  5. 信息提示框:MessageBox
  6. 在对 Angular 的文档 aio 进行编译的时候提示错误
  7. win10 exe如何添加或禁用开机自启动项
  8. spring注解版
  9. webdriver驱动火狐浏览器报错:Unable to find a matching set of capabilities
  10. 解析XML的几种方式:DOM、SAX、PULL