sqlalchemy db migrate

参考 https://sqlalchemy-migrate.readthedocs.org/en/latest/versioning.html#writing-for-a-specific-database

0.作用

可对数据库进行版本升级/降级

新版本的代码,数据库表结构发生变化。采用migrate可直接改变数据库的表结构而不影响原有的数据。

一。 SQLALchemy 迁移提供两种方式

1)api方式    migrate.versioning API

2)migrate 命令行方式

二。涉及概念

repository   : 数据库迁移所需要的配置文件、脚本等保存的目录


三。迁移的工作流程

命令行方式

1.建立repository

migrate create /home/cloud/your_repository "example project"

在创建新的repository(/home/cloud/your_repository),名为'example project'

目录下的内容

cloud@ubuntu22:~/your_repository$ ls -l
total 20
-rw-r--r-- 1 cloud cloud    0 五月 29 15:18 __init__.py
-rw-r--r-- 1 cloud cloud  185 五月 29 15:18 __init__.pyc
-rw-rw-r-- 1 cloud cloud  116 九月 10 17:02 manage.py
-rw-r--r-- 1 cloud cloud 1242 九月 10 17:02 migrate.cfg
-rw-r--r-- 1 cloud cloud  107 五月 29 15:18 README
drwxr-sr-x 2 cloud cloud 4096 五月 29 15:18 versions

versions: 保存迁移所需要的各个版本脚本的目录

manage.py :  执行这个脚本跟执行migrate命令一样的效果,但是manage.py可以预设一些参数值(现在还没有设置,后面会说明)



migrate.cfg: 配置文件

repository_id : 上面命令行定义的name

version_table: 数据库记录migrate版本的表名

2.建立版本控制(即说明要迁移的数据库名,并且将所需信息写入数据库)

python /home/cloud/your_repository/manage.py version_control sqlite:///test.db  /home/cloud/your_repository/
将数据库与repository建立关联关系,会在test.db创建新表migrate_version,版本为0

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值