參考連結:
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運作不是很安全的遷移規則,包括:表,行,資料的移除。