sfc中增加某表的属性

#sfc中更新数据库表格属性,利用alembic工具,同时需要其ini文件,拷贝neutron下的ini文件到sfc目录下
cp  /usr/lib/python2.7/site-packages/neutron/db/migration/alembic.ini /usr/lib/python2.7/site-packages/networking_sfc/db/migration/
#进入sfc对应的目录
cd /usr/lib/python2.7/site-packages/networking_sfc/db/migration
#添加自己的表格,会在/usr/lib/python2.7/site-packages/networking_sfc/db/migration/alembic_migrations/versions/ 目录下生成对应的文件


alembic revision -m "Add sfc_path_nodes_ppg_n_tuple_mapping table"
[root@controller migration]# alembic revision -m "Add sfc_path_nodes_ppg_n_tuple_mapping table"
  Generating /usr/lib/python2.7/site-packages/networking_sfc/db/migration/alembic_migrations/versions/aa0a0e47a482_add_sfc_path_nodes_ppg_n_tuple_mapping_.py ... done


#此例中生成如下文件:aa0a0e47a482_add_sfc_path_nodes_ppg_n_tuple_mapping_.py
#其内容如下:
revision = '61832141fb82'
down_revision = '6185f1633a3d'


from alembic import op
import sqlalchemy as sa




def upgrade():
    pass


#此例中我们需要给sfc_path_nodes表格增加属性ppg_n_tuple_mapping
#1.在对应的sfc_path_nodes模型中增加对应的属性,如下:
class PathNode(model_base.BASEV2, model_base.HasId, model_base.HasProject):
    __tablename__ = 'sfc_path_nodes'
    ....
    ppg_n_tuple_mapping = sa.Column(sa.String(1024), nullable=True)
此步骤保证正常调用
#2.在生成的文件中,更新表格的属性,如下:
def upgrade():
    op.add_column('sfc_path_nodes', sa.Column('ppg_n_tuple_mapping',
                                              sa.String(1024),
                                              nullable=True))
此步骤保证当更新数据库时,会从此文件中更新对应表格的属性,生成新的数据库版本


#更新对应的数据库
neutron-db-manage --subproject networking-sfc upgrade head


#可以发现:
INFO  [alembic.runtime.migration] Context impl MySQLImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
  Running upgrade for networking-sfc ...
INFO  [alembic.runtime.migration] Context impl MySQLImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade 198fd0b55458 -> aa0a0e47a482, Add sfc_path_nodes_ppg_n_tuple_mapping table
  OK
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值