天天看點

neutro 資料庫版本管理

參考連結:

https://docs.openstack.org/mitaka/networking-guide/migration-database.html

https://docs.openstack.org/neutron/pike/contributor/alembic_migrations.html#expand-and-contract-scripts

neutron-db-manage簡介

neutron服務的資料庫更新是通過Alembic工具實作的,neutron-db-manage指令是對alembic做了一層包裝。neutron-db-manage --help 檢視指令的使用資訊。預設配置檔案為/etc/neutron/neutron.conf,如配置檔案位于其他路徑可通過--config-file指定。配置檔案中需要有資料庫的連接配接資訊,格式如下:

[database]

connection=mysql+pymysql://使用者名:密碼@主機hostname/neutron

也可以不通過配置檔案在指令行中直接給出資料庫的連接配接資訊:

neutron-db-manage --database-connection mysql+pymysql://root:[email protected]/neutron <commands>。branches,current,histroy支援--verbose,可顯示更詳細的輸出資訊。如:neutron-db-manage current --verbose。對于新部署環境我們需要建立一個新庫,然後通過neutron-db-manage upgrade heads指令更新庫到最新版本

通過neutron-db-manage current指令可以檢視目前資料庫的版本

資料庫版本分支

獨立的子項目(neutron-lbaas,neutron-vpnass,neutron-l2gw等)

neutron-db-manage --subproject <子項目名稱> <options> <commands>

離線/線上遷移(Offline/Online)

從liberty開始neutron保持着兩個平行的alembic遷移分支:expand和contract。expand僅包含擴充規則(添加新的表,行,索引)。不用停止neutron-server可安全線上更新。contract儲存這對neutron-server運作不是很安全的遷移規則,包括:表,行,資料的移除。

繼續閱讀