2017-10-02 1 views
1

Lorsque vous essayez de mettre à niveau un conteneur docker avec ArangoDB 03.01 à 03.02 je rencontre le problème avec la base de données mise à jour besoin:Comment exécuter mise à niveau automatique de ArangoDB 03.01 à 03.02 sur l'image docker

FATAL Database '_system' needs upgrade. Please start the server with the --database.auto-upgrade option FATAL Database '_system' upgrade failed. Please inspect the logs from the upgrade procedure

Comment est-ce que je passe réellement le réglage? J'ai essayé de définir command: 'arangod --database.auto-upgrade true dans mon docker-compose.yml, mais cela ne fait rien.

Répondre

1

J'utilise aussi docker-Compose pour mon système dans lequel arangodb est exécuté sous le nom de service database comme ceci:

version: '2.1' services: database: image: arangodb:3.1.3 ports: - 8529:8529 volumes: - /opt/my-system/Database/arangodb:/var/lib/arangodb3 - /opt/my-system/Database/arangodb-apps:/var/lib/arangodb3-apps restart: always healthcheck: test: curl -f my-system:8529/_api/version || exit 1 . . . other services

Avant la mise à niveau, je dois aussi arrêter mon système. Je viens de mettre à jour mon conteneur arangodb les étapes suivantes (3.1.3 => 3.2.5)

  1. docker pull arangodb:3.2.5 => obtenir l'image que vous souhaitez passer à
  2. docker-compose stop => mon système qui arrête utilise la base de données
  3. sauvegarde les volumes de base de données (je viens de faire une copie de/opt/my-system/dossier de base de données)
  4. docker-compose rm -f database => retirer le récipient en cours d'exécution vieux arangodb
  5. mise à jour fichier docker-compose.yml avec de nouvelles image arangodb => s o image:arangodb:3.1.3 devient image:arangodb:3.2.5
  6. docker-compose run --rm database arangod --database.auto-upgrade => ceci créera le conteneur de la base de données sous v3.2.5, mettra à jour les fichiers de la base de données, puis supprimera le conteneur une fois terminé.
  7. docker-compose up -d database => lancer la base de données mis à jour pour voir si tout est OK
  8. docker-compose start => démarrer le reste du système, qui utilise maintenant la base de données mis à jour

Si j'avais des erreurs lors de la mise à niveau, je pouvais J'ai facilement retrouvé la version 3.1.3, car je garde toujours l'image précédente et les fichiers de la base de données. J'espère que cela aide!