Ağ servisi veritabanının yükseltilmesi Alembic geçiş zincirleriyle gerçekleştirildi.``alembic/versions``in geçişlerinde eski Ağ Hizmeti sürümlerinden yeni sürümlere geçiş yapmak için gereken değişiklikler var.
Liberty’den bu yana, Ağ iki paralel Alembic göç dalını tutar.
İlk dala genişletme adı verilir ve yalnızca genişleme geçiş kurallarını depolamak için kullanılır. Bu kurallar kesinlikle ilavedir ve Neutron sunucusu çalışırken uygulanabilir.
İkinci dala sözleşme denir ve Neutron sunucusu çalışırken uygulanması güvenli olmayan bu geçiş kurallarını saklamaya yarar.
Ayrı dalların amacı, Neutron sunucusu çalışırken genişletme dalından bu güvenli geçişlerin başlatılmasına ve dolayısıyla hizmeti yükseltmek için gereken kesintilerin azaltılmasına izin vermektir.
Bir veritabanı yönetimi komut satırı aracı, taşıma işlemini yönetmek için Alembic kitaplığını kullanır.
Bu, admin_state_up tekrar True
olarak ayarlanıncaya kadar ciddi güney-kuzey bağlantılarına neden olur. Veritabanı yönetim komut satırı aracı neutron-db-manage olarak adlandırılır. Kullanım bilgisi için aracı --help
seçeneği ile çalıştırın.
Araç, bazı komutları takiben bazı seçenekler alıyor:
$ neutron-db-manage <options> <commands>
Araç, bir kurulumda neutron.conf
yapılandırma dosyasında sağlanan veritabanı bağlantı dizesine erişmek zorundadır. Araç, varsa otomatik olarak /etc/neutron/neutron.conf
dan okur. Yapılandırma farklı bir konumdaysa, aşağıdaki komutu kullanın:
$ neutron-db-manage --config-file /path/to/neutron.conf <commands>
Eğer gerekliyse birden fazla --config-file
seçeneği verilebilir.
DB bağlantısını yapılandırma dosyalarından okumak yerine --database-connection
seçeneğini kullanabilirsiniz:
$ neutron-db-manage --database-connection
mysql+pymysql://root:secret@127.0.0.1/neutron?charset=utf8 <commands>
branches, current ve history komutlarının hepsi bir --verbose
seçeneği kabul eder; bu seçenek geçildiğinde belirtilen komut için daha detaylı sonuç göstermek için neutron-db-manage komutu çalıştırılacaktır:
$ neutron-db-manage current --verbose
Not
Aşağıdaki araç kullanımı örneklerinde seçenekleri gösterilmez. Ortamınız için ihtiyaç duyduğunuz seçenekleri kullandığınız varsayılmıştır.
Yeni kurulumlarda, boş bir veritabanıyla başlar ve sonra aşağıdaki komutu kullanarak en yeni veritabanı sürümüne geçersiniz:
$ neutron-db-manage upgrade heads
Neutron sunucusunun yeni bir sürümünü yükledikten sonra, aşağıdaki komutu kullanarak veritabanını yükseltin:
$ neutron-db-manage upgrade heads
Varolan dağıtımlarda şu komutu kullanarak geçerli veritabanı sürümünü kontrol edin:
$ neutron-db-manage current
Genişletme taşıma kurallarını uygulamak için aşağıdaki komutu kullanın:
$ neutron-db-manage upgrade --expand
Genişletme dışı geçiş kurallarını uygulamak için aşağıdaki komutu kullanın:
$ neutron-db-manage upgrade --contract
Herhangi bir sözleşme geçiş işleminin beklemede olup olmadığını kontrol etmek ve dolayısıyla çevrimdışı geçiş yapılması gerekiyorsa aşağıdaki komutu kullanın:
$ neutron-db-manage has_offline_migrations
Not
Çevrimdışı göç, herhangi bir sözleşme komut dosyasını uygulamadan önce kümedeki tüm Neutron sunucu örneklerinin kapanmasını gerektirir.
Veritabanında hemen çalıştırmak yerine komut betiğini oluşturmak için aşağıdaki komutu kullanın:
$ 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.
Belirli taşıma sürümleri arasında taşımak için aşağıdaki komutu kullanın:
$ neutron-db-manage upgrade <start version>:<end version>
Veritabanını aşamalı olarak yükseltmek için aşağıdaki komutu kullanın:
$ neutron-db-manage upgrade --delta <# of revs>
Not
Veritabanı sürüm düşürme desteklenmiyor.
Yükseltme komutu tarafından oluşturulan şema ile modeller tarafından tanımlanan şema arasındaki farklara bakmak için revision --autogenerate komutunu kullanın:
neutron-db-manage revision -m REVISION_DESCRIPTION --autogenerate
Not
Bu, veritabanı durumunu modellerle eşleştirmek için gereken değişiklikleri içeren önceden doldurulmuş bir şablon oluşturur.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.