GNU/Linux >> Tutoriels Linux >  >> Linux

Erreur OpenStack Neutron db_sync - Impossible d'ajouter une colonne NOT NULL avec la valeur par défaut NULL [Résolu]

Si vous êtes bloqué avec une erreur Impossible d'ajouter une colonne NOT NULL avec la valeur par défaut NULL lors du remplissage ou de la synchronisation de la base de données de neutrons, voici comment vous pouvez y remédier. Avant de voir la solution, jetez un œil à l'instantané de l'erreur :

# 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']

L'erreur est étrange car mon installation OpenStack utilise la base de données MySQL, mais l'erreur indique SQLite.

Solution :

Comme mon installation devait utiliser la base de données MySQL, j'ai rapidement vérifié neutron.conf fichier pour voir si la variable de connexion a été définie correctement. Étonnamment, il y avait une variable de connexion supplémentaire pointant vers SQLite et c'était le coupable dans mon cas.

# 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

La solution était donc de commenter la variable de connexion qui pointe vers sqlite.

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

C'est ça! Si vous souhaitez savoir pourquoi sqlite n'a pas pu ajouter une colonne address_scopes avec une contrainte NOT NULL sur une table existante, voici la raison.

Selon la documentation SQLite ALTER TABLE, si la contrainte NOT NULL est spécifiée, la colonne doit avoir une valeur par défaut autre que NULL.


Linux
  1. Comment réparer l'erreur de configuration :impossible de trouver le répertoire macro 'm4' [Résolu]

  2. Impossible d'ouvrir la console XEN VM - Erreur Virt-viewer :impossible d'ouvrir l'affichage [Résolu]

  3. Erreur d'installation de ConfigParser - python setup.py egg_info a échoué avec le code d'erreur 1 [Résolu]

  4. Erreur OpenStack - Taille de colonne d'index trop grande. La taille de colonne maximale est de 767 octets [Résolu]

  5. Le système de réparation n'a pas été démarré avec systemd en tant qu'erreur de système d'initialisation

[Résolu] Impossible d'accéder au fichier de stockage, autorisation refusée Erreur dans KVM Libvirt

La commande "ntpq -pn" renvoie l'erreur "Nom ou service inconnu"

utiliser awk avec des conditions de valeur de colonne

Android Studio 3.2.1 - Impossible de synchroniser le projet avec les fichiers de niveau :l'argument pour le paramètre 'message' @NotNull de ... ne doit pas être nul

Faire fonctionner la sauvegarde par défaut avec GRUB2... ?

Utilisation d'AWK pour sélectionner des lignes avec une valeur spécifique dans une colonne spécifique