Database

Database

Upgrade dari database layanan Networking diimplementasikan dengan rantai migrasi Alembic. Migrasi di alembic /versions berisi perubahan yang dibutuhkan untuk bermigrasi dari rilis layanan Networking tua ke yang lebih baru.

Sejak Liberty, Networking mempertahankan dua cabang migrasi Alembic yang paralel.

Cabang pertama disebut memperluas dan digunakan untuk menyimpan aturan migrasi expansion-only. Aturan-aturan ini secara ketat aditif dan dapat diterapkan ketika server Neutron berjalan.

Cabang kedua disebut kontrak dan digunakan untuk menyimpan aturan-aturan migrasi yang tidak aman untuk menerapkannya ketika Neutron server berjalan.

Maksud dari cabang terpisah adalah untuk memungkinkan permohonan migrasi mereka yang aman dari perluasan cabang ketika server Neutron berjalan dan karena itu mengurangi downtime yang dibutuhkan untuk meng-upgrade layanan.

Sebuah alat command-line pengelolaan database menggunakan perpustakaan Alembic untuk mengelola migrasi.

Alat command-line pengelolaan database

Alat command-line manajemen database disebut neutron-db-manage. Melewatkan opsi --help ke alat itu untuk informasi penggunaan.

Alat ini mengambil beberapa pilihan yang diikuti oleh beberapa perintah:

$ neutron-db-manage <options> <commands>

Alat ini perlu mengakses string koneksi database, yang disediakan dalam file konfigurasi neutron.conf dalam instalasi. Alat ini secara otomatis membaca dari /etc/neutron/neutron.conf jika ada. Jika konfigurasi ini ada di lokasi yang berbeda, gunakan perintah berikut:

$ neutron-db-manage --config-file /path/to/neutron.conf <commands>

Beberapa opsi --config-file dapat dilewatkan jika diperlukan.

Dari pada membaca koneksi DB dari file konfigurasi, Anda dapat menggunakan opsi --database-connection:

$ neutron-db-manage --database-connection
  mysql+pymysql://root:secret@127.0.0.1/neutron?charset=utf8 <commands>

Perintah branches,`current`, dan history semuanya menerima opsi --verbose, ketika melewatinya, dan perintah ini akan menginstruksikan neutron-db-manage untuk menampilkan output yang lebih banyak kata (verbose) untuk perintah tertentu:

$ neutron-db-manage current --verbose

Catatan

Contoh penggunaan alat di bawah ini tidak menunjukkan pilihan. Hal ini diasumsikan bahwa Anda menggunakan pilihan yang Anda butuhkan untuk lingkungan Anda.

Dalam pengerahan baru, Anda mulai dengan database kosong dan kemudian meng-upgrade ke versi terbaru database menggunakan perintah berikut:

$ neutron-db-manage upgrade heads

Setelah menginstal versi baru dari server Neutron, meng-upgrade database kemudian gunakan perintah berikut:

$ neutron-db-manage upgrade heads

Dalam pengerahan yang ada, periksa versi database saat menggunakan perintah berikut:

$ neutron-db-manage current

Untuk menerapkan aturan migrasi ekspansi, gunakan perintah berikut:

$ neutron-db-manage upgrade --expand

Untuk menerapkan aturan migrasi non-expansive, gunakan perintah berikut:

$ neutron-db-manage upgrade --contract

Untuk memeriksa apakah ada migrasi kontrak yang tertunda dan oleh karena itu jika migrasi secara offline diperlukan, gunakan perintah berikut:

$ neutron-db-manage has_offline_migrations

Catatan

Migrasi Offline memerlukan semua instance server Neutron dalam cluster untuk shutdown sebelum Anda menerapkan script kontrak.

Untuk menghasilkan script perintah sebagai ganti operasi segera pada database, gunakan perintah berikut:

$ neutron-db-manage upgrade heads --sql

.. note::

   The `--sql` option causes the command to generate a script.  The script
   can be run later (online or offline), perhaps after verifying and/or
   modifying it.

Untuk bermigrasi antara versi migrasi tertentu, gunakan perintah berikut:

$ neutron-db-manage upgrade <start version>:<end version>

Untuk meng-upgrade database secara bertahap, gunakan perintah berikut:

$ neutron-db-manage upgrade --delta <# of revs>

Catatan

Database downgrade tidak didukung.

To look for differences between the schema generated by the upgrade command and the schema defined by the models, use the revision --autogenerate command:

neutron-db-manage revision -m REVISION_DESCRIPTION --autogenerate

Catatan

Ini menghasilkan prepopulated template dengan perubahan yang diperlukan untuk mencocokkan keadaan database dengan model.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.