Venez de MongoDB avec vos données, sans réécrire votre application
IshedDB parle la syntaxe de MongoDB, et ses bibliothèques s'écrivent comme ses pilotes. Vos données arrivent copiées et vérifiées document par document ; votre code change à peine.
L'inventaire
Un outil lit votre déploiement en lecture seule : bases, collections, volumes, index, forme des documents. Il ne garde aucune valeur, seulement des noms, des types et des tailles.
Le plan
Nous vous disons ce qui passe tel quel, ce qui change de forme (un décimal exact devient un texte, par exemple) et ce qui n'a pas encore d'équivalent, avant toute copie.
La copie vérifiée
Chaque collection est copiée avec ses index (uniques, composés, d'expiration), 1000 documents à la fois, puis chaque document est relu dans IshedDB et comparé à l'original.
La bascule
Une nuit : votre application à l'arrêt, une dernière copie vérifiée, la nouvelle adresse et la clé dans les réglages de votre serveur, et elle repart sur IshedDB.
Votre code change à peine
Les bibliothèques d'IshedDB s'écrivent comme le pilote MongoDB de chaque langage : find, insertOne, updateMany, aggregate, createIndex, les transactions et les change streams gardent leurs noms et leurs arguments. Ce qui change : la connexion.
- Node.js, Python, PHP, Java, C#, Go, Ruby et C++.
- Mongoose : chaque forme a son équivalent, dans le guide.
- Les identifiants
ObjectIddeviennent leurs 24 chiffres en texte : vos références continuent de se répondre.
// Avant, avec le pilote MongoDB
const client = new MongoClient(process.env.MONGODB_URI);
// Après, avec IshedDB
const client = connect({ url: process.env.ISHED_URL, key: process.env.ISHED_KEY });
// Le reste ne change pas
const patients = client.db('Clinique').collection('patients');
await patients.find({ ville: 'Dakar' }).sort({ nom: 1 }).toArray();
Ou par vous-même, avec le shell
Pour une petite base, ou pour essayer : exportez une collection avec mongoexport, puis importez-la avec le shell ished, qui lit l'Extended JSON de MongoDB ($oid, $date, $numberLong…).
mongoexport --uri "$MONGODB_URI" -d Clinique -c patients -o patients.json
node ished.mjs import -d Clinique -c patients --file patients.json
Ce qui n'a pas encore d'équivalent
L'inventaire le dit avant la copie. Aujourd'hui : la recherche vectorielle, les index géographiques, GridFS, les collections plafonnées et les séries temporelles, la réplication sur plusieurs serveurs. Si votre application s'en sert, nous en parlons d'abord.
Vos accès restent les vôtres
L'inventaire et la copie se font avec un utilisateur en lecture seule que vous créez pour quelques jours, depuis une adresse que vous autorisez puis retirez. Rien n'est jamais écrit dans votre base MongoDB.