在线更新

1. alembic init <YOUR_DIR># 此处,我用的是alembic_v

2.修改alembic.ini。如下:

sqlalchemy.url = driver://user:pass@localhost:port/dbname具体实例:sqlalchemy.url = mysql+mysqldb://storage:lenovo@192.168.100.6/storagemgmt
解释:
此部分替换成对应的数据库连接,这个数据库连接的写法是与SQLAlchemy创建engine时是一样的。比如使用SQLAlchemy与mysqldb,那数据库连接就是如上“具体实例所示”。

3. 修改en.py。把target_metadata = None,改为如下:

import osimport sys# 此处需要将项目路径添加到sys.path,否则from import时找不到
modelssys.path.append(os.path.dirname(os.path.abspath(__file__)) + "/../")
from models.base import Base
Modeltarget_metadata = BaseModel.metadata
解释:在env.py中,将target_metadata设置成项目的model,使alembic能获取到项目中model定义的信息
如:我的models.py的目录如下,那么应该如此导入。

/usr/lib/python2.7/site-packages/storagemgmt/storage/sqlalchemy/models.py

其中Base是在models.py中定义的,如下:

4. 创建新的版本。

alembic revision --autogenerate -m "init db"
解释:用 alembic revision -m+注释 创建数据库版本. “版本号+注释”就是版本文件的名字。这个命名规则是在配置文件中定义的。

5.更新数据库。

alembic upgrade head

6.将数据库降级到最初版本.

alembic downgrade base

7.将数据库降级到执行版本

使用alembic downgrade+版本号,不包含注释部分.

alembic downgrade <version>如: alembic downgrade 0e8e73745ff2

离线更新

在某些不适合在线更新的情况,可以采用生成sql脚本的形式,进行离线更新:alembic upgrade <version> --sql > migration.sql
如:alembic upgrade ae1027a6acf --sql > migration.sql
从特定起始版本生成sql脚本:alembic upgrade <vsersion>:<vsersion> --sql > migration.sql
如:alembic upgrade 1975ea83b712:ae1027a6acf --sql > migration.sql
如果是数据库降级操作,把upgrade替换为downgrade。

Reference:

https://docs.openstack.org/developer/neutron/devref/alembic_migrations.html

转载于:https://www.cnblogs.com/double12gzh/p/10166105.html

使用alembic进行openstack数据库版本管理相关推荐

  1. Python使用Alembic框架进行数据库版本管理

    数据库及ORM alembic 版本管理 要使用alembic 首先要安装alembic 管理工具, 使用pip工具进行安装.会自动安装三个依赖包 pip install alembic 执行初始化会 ...

  2. 使用Source Safe for SQL Server解决数据库版本管理问题

    使用Source Safe for SQL Server解决数据库版本管理问题 参考文章: (1)使用Source Safe for SQL Server解决数据库版本管理问题 (2)https:// ...

  3. sqlite管理工具_Liquibase 数据库版本管理工具:1.安装

    1.Liquibase 是什么 粘一段官方的解释 Track, version, and deploy database changes 跟踪.管理和应用数据库变化 说白了,就是一个将你的数据库脚本转 ...

  4. linux open出现乱码,OpenStack 数据库中文乱码问题

    openstack的sql connection 需要配置成utf-8才不会中文乱码 sql_connection = mysql://nova:xxx@qa-mysql1:3306/nova?cha ...

  5. 数据库版本管理工具Flyway应用

    2019独角兽企业重金招聘Python工程师标准>>> Flyway介绍 Flyway是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式.Flyway可以独立于应用实现管理 ...

  6. numeric比较大小 数据库_Liquibase 数据库版本管理工具:3. changeSet 变更集详解

    上篇文章中详细了介绍了一下changelog 文件的使用,本篇文章将详细说一下 changeSet 变更集 中的细节,以及通常的使用方式 1.变更集分类 changeSet 分为 6类: add cr ...

  7. 【SQL管理】-Flyway数据库版本管理利器从入门到入味

    Flyway是什么? Flyway是独立于数据库的应用.管理并跟踪数据库变更的数据库版本管理工具.用通俗的讲,Flyway可以像Git管理不同人的代码那样,管理不同人的sql脚本,整个过程自动化,可回 ...

  8. 数据库版本管理工具 -- Flyway

    目录 一.Flyway简介 二.如何使用Flyway 三.核心概念 1.Migration 2.每个migration支持两种编写方式: (1)java (2)sql (3)所有的migration都 ...

  9. 研发效能系列----开源的数据库版本管理工具Flyway

    1. 简介 网址:https://flywaydb.org/ Flyway是一款开源的数据库版本管理工具,Flyway可以独立于应用实现管理并跟踪数据库的变更,Flyway根据自己的约定,不需要复杂的 ...

最新文章

  1. FPGA的设计艺术(18)如何使用Verilog中的数组对存储器进行建模?
  2. 阿里云云计算服务 备案期间服务器免费
  3. 修改审查元素怎么保存_手机qq性别怎么改成空白
  4. mysql 5.0存储过程学习总结
  5. flash 及 flex 技术
  6. Creative主题电子科技企业类discuz模板
  7. C#算法设计排序篇之07-希尔排序(附带动画演示程序)
  8. Java 8新特性探究(五)重复注解(repeating annotations)
  9. 【java】变量的应用
  10. cocos2d-x将背景色改为白色
  11. 168个怪兽之声进化游戏生物怪兽音效素材 Evolved Game Creatures – Monster Sounds
  12. 6个专家认可的持续绩效管理技巧
  13. 软件测试学习视频 分享
  14. matlab用Java绘图_Java中使用MATLAB作图
  15. 芯片k66中文数据手册_IXFK66N50Q2
  16. 学习笔记-磁盘存储管理
  17. 转给身边工程师:环形穿梭车控制系统设计细节来了!
  18. C++——求平均数、求和函数
  19. alsa 添加codec
  20. 基于Android的仿美团外卖系统设计与实现 文档+源码+视频

热门文章

  1. 原 layer父子页面交互
  2. Linux下文件的三个时间意义及用法
  3. 类的继承私有成员问题
  4. android有错.怎么办
  5. Active Record 数据验证
  6. 1019. 数字黑洞 (20)
  7. 厦门大学2016年高等代数考研试题参考解答
  8. 黄聪: Bootstrap之Form表单验证神器: BootstrapValidator(转)
  9. mongodb 监控命令mongostat
  10. margin负值布局(一)