Je reçois le message d'erreur suivant (dump MongoDB 3.2) (restauration de MongoDB 3.4):
Failed: ngivr-dev.ledgerhelpers: error creating indexes for ngivr-dev.ledgerhelpers: **createIndex error:** **The field 'safe' is not valid for an index specification.** Specification: **{ unique: true, name: "ledgerId_1", safe: null, ns: "ngivr-dev.ledgerhelpers", background: true, key: { ledgerId: 1 } }**
On dirait que l'index sécurisé est nul. Mais comment puis-je l'utiliser avec MongoDB 3.4? 3.2 est ok.
safe=true
n'est pas une spécification d'index.
Dans les versions précédentes de MongoDB, inférieures à 3.4, des spécifications d'index supplémentaires peuvent être ajoutées. Ceux-ci ont été utilisés par des pilotes spécifiques.
En 3.4, mongodb a ajouté une validation sur la spécification des index:
C’est pourquoi vous avez cette erreur… .. Je crains que vous ne deviez vous assurer que l’index de votre version 3.2 n’a pas de spécification d’index invalide, et ensuite le mongodump.
Comme kz_sergey le dit dans sa réponse, vous pouvez utiliser mongorestore
avec --noIndexRestore
, cela devrait fonctionner correctement.
Pourquoi restaurez-vous les index? --noIndexRestore et les créer à nouveau.
find . -type f -name "*.metadata.json" -exec sed -i 's/,"safe":null//g' {} \;