sqlalchemy修改openstack数据库

一.数据库更新步骤

a. 添加版本文件

在下面的目录中添加新的版本文件,注意文件开头的编号要比本目录下已存在的版本号大。/usr/lib/python2.7/site-packages/storagemgmt/storage/sqlalchemy/migrate_repo/versions

b. 修改models.py文件

修改/usr/lib/python2.7/site-packages/storagemgmt/storage/sqlalchemy/models.py文件中相应表的类

c. 运行storagemgmt-dbsync

执行成功后,在/var/log/storagemgmt-dbsync.log中会看到类似以下的信息:
这里写图片描述

二. 数据库更新实例

a. 为数据库添加一张新表

以添加一个新表iscsi_accounts为例。
1. 在/usr/lib/python2.7/site-packages/storagemgmt/storage/sqlalchemy/migrate_repo/versions 目录下新建一个文件, 并且需要为文件名指定一个有序的编号, EG. 023_add_iscsi_accounts.py (注意文件开头的编号要比本目录下已存在的版本号大)
这里写图片描述
2. 修改/usr/lib/python2.7/site-packages/storagemgmt/storage/sqlalchemy/models.py,在其中添加一个新类,此处的作用是实现数据库表与类的映射,类中的属性要与数据库表中的字段一致。如下:
这里写图片描述
3. 运行storagemgmt-dbsync。

b. 删除一张或多张表

以删除表’ceph_rbd’, ‘ceph_osd’, ‘ceph_mon’为例。
1. 在/usr/lib/python2.7/site-packages/storagemgmt/storage/sqlalchemy/migrate_repo/versions目录下新建一个文件,并且需要为文件名指定一个有序的编号, EG. 024_delete_multi_tables.py(注意文件开头的版本号要比本目录下已存在的版本号大)
这里写图片描述
2. 修改/usr/lib/python2.7/site-packages/storagemgmt/storage/sqlalchemy/models.py把这几张表对应的类删除掉。
3. 运行storagemgmt-dbsync。

c. 为旧表添加一个字段

以向旧表ceph_rbd中的添加两个字段”parent”和”status”为例。
1. 在/usr/lib/python2.7/site-packages/storagemgmt/storage/sqlalchemy/migrate_repo/versions 目录下新建一个文件, 并且需要为文件名指定一个有序的编号, EG. 024_update_add_parent_status_in_ceph_rbd.py(注意文件开头的版本号要比本目录下已存在的版本号大)
这里写图片描述
2. 修改/usr/lib/python2.7/site-packages/storagemgmt/storage/sqlalchemy/models.py把新加的字段parent和status添加到cehp_rbd表对应的类下面。如:
这里写图片描述
3. 运行storagemgmt-dbsync。

d. 为旧表删除一个字段

这里写图片描述

e. 为旧表修改一个字段

这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值