GNU/Linux >> Znalost Linux >  >> Linux

Chyba OpenStack Neutron db_sync – Nelze přidat sloupec NOT NULL s výchozí hodnotou NULL [Vyřešeno]

Pokud narazíte na chybu Nelze přidat sloupec NOT NULL s výchozí hodnotou NULL při naplňování nebo synchronizaci databáze neutronů, zde je návod, jak to opravit. Než uvidíme řešení, podívejte se na snímek chyby:

# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
 sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) Cannot add a NOT NULL column with default value NULL [SQL: u'ALTER TABLE address_scopes ADD COLUMN ip_version INTEGER NOT NULL']

Chyba je zvláštní, protože moje instalace OpenStack používá databázi MySQL, ale chyba říká SQLite.

Řešení:

Protože moje instalace měla používat databázi MySQL, rychle jsem ověřil neutron.conf soubor, abyste zjistili, zda byla správně nastavena proměnná připojení. Překvapivě existovala další proměnná připojení ukazující na SQLite a to byl v mém případě viník.

# vim /etc/neutron/neutron.conf
[database]
 connection = mysql+pymysql://neutron:osneutron@controller/neutron
 The SQLAlchemy connection string to use to connect to the database. (string
 # value)
 # Deprecated group/name - [DEFAULT]/sql_connection
 # Deprecated group/name - [DATABASE]/sql_connection
 # Deprecated group/name - [sql]/connection
 connection = sqlite:////var/lib/neutron/neutron.sqlite

Řešením tedy bylo zakomentovat proměnnou připojení, která ukazuje na sqlite.

# connection = sqlite:////var/lib/neutron/neutron.sqlite

A je to! Pokud vás zajímá, proč sqlite nemohl přidat sloupec address_scopes s omezením jako NOT NULL pro existující tabulku, pak je důvod.

Podle dokumentu SQLite ALTER TABLE, pokud je zadáno omezení NOT NULL, musí mít sloupec výchozí hodnotu jinou než NULL.


Linux
  1. Git Remote Add s jiným portem SSH (ne 22)

  2. Chyba OpenStack – velikost sloupce indexu je příliš velká. Maximální velikost sloupce je 767 bajtů [Vyřešeno]

  3. OpenStack Compute Error – Žádný záznam výpočetního uzlu pro hostitele [Vyřešeno]

  1. Chyba spouštění virtuálního počítače OpenStack – poslední výjimka:Vazba selhala pro port [Vyřešeno]

  2. Chyba kontroly M2Crypto SSL:Subjekt AltName partnerského certifikátu neodpovídá [Vyřešeno]

  3. Nelze najít platnou základní adresu URL:Chyba YumRepo [Vyřešeno]

  1. Nelze přidat Ppa Error Uživatel nebo tým neexistuje?

  2. Fixing System nebyl zaveden s systemd as init system Error

  3. Nastavit výchozí uloženou práci s GRUB2...?