sql >> Database teknologi >  >> NoSQL >> MongoDB

Er der nogen værktøjer til skemamigrering til NoSQL-databaser?

Da en nosql-database kan indeholde enorme mængder data, kan du ikke migrere den i den almindelige rdbms-sætning. Faktisk kan du ikke gøre det for rdbms så godt, så snart dine data passerer en størrelsesgrænse. Det er upraktisk at bringe dit websted ned i en dag for at tilføje et felt til en eksisterende tabel, og så med rdbms ender du med at lave grimme patches som at tilføje nye tabeller kun for feltet og lave joins for at komme til dataene. I nosql-verdenen du kan gøre flere ting.

  • Som andre foreslog, kan du skrive din kode, så den kan håndtere forskellige 'versioner' af det mulige skema. dette er normalt enklere end det ser ud. Mange slags skemaændringer er trivielle at kode rundt omkring. for eksempel hvis du vil tilføje et nyt felt til skemaet, tilføjer du det bare til alle nye poster, og det vil være tomt på alle gamle poster (du vil ikke få "felt eksisterer ikke" fejl eller noget;). hvis du har brug for en 'standard' værdi for feltet i de gamle poster, er det for trivielt gjort i kode.
  • En anden mulighed og faktisk den eneste fornuftige mulighed fremover med ikke-trivielle skemaændringer som feltomdøbninger og strukturelle ændringer er at gemme schema_version i HVER post og have kode til at migrere data fra enhver version til den næste på LÆS . dvs. hvis din nuværende skemaversion er 10, og du læser en post fra databasen med version 7, så skal dit db-lag kalde migrate_8, migrate_9 og migrate_10. På denne måde vil de data, der tilgås, gradvist blive migreret til den nye version. og hvis den ikke er tilgået, hvem bekymrer sig så hvilken version det er;)


  1. Top 10 funktioner i MongoDB Atlas

  2. MongoDB opdatering indlejret array

  3. Sådan opdateres Multiple Array-objekter i mongodb

  4. db.collectionNames virker ikke i Node.js