一.数据库更新步骤
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. 为旧表修改一个字段