Seit langer Zeit haben wir unsere Daten im Projekt-Repository gespeichert. Wir haben alles unter data/sql gespeichert, und jede Tabelle hatte ihre eigenen Dateien create_tablename.sql und data_tablename.sql.Code & Daten Tracking/Deployment
Wir haben jetzt nur unser zweites Projekt auf Scalr eingesetzt und wir haben erkannt, es ein bisschen chaotisch ist.
Die Art, wie wir einsetzen:
Wir haben eine „packageup“ Sammlung von Skripten haben, die das Projekt in drei Archive zerreißen (Daten, Code, statische Dateien), die wir dann in drei separaten Eimer auf S3 gespeichert werden.
Immer wenn eine Rolle gestartet wird, lädt sie eine der Dateien herunter (abhängig von der Rolle: data, nfs oder web) und dann erstellt ein "entpackage" -Skript alles für jede Rolle, lädt die Daten in mysql, richtet sie ein die nfs, etc.
Wir machen das so, weil wir keine Serverbilder speichern wollen, wir beginnen immer mit Vanilla-Instanzen, auf denen wir alles von Grund auf mit verschiedenen hauseigenen Skripten installieren. Startzeit ist kein Problem (wir haben eine betriebsbereite Farm in 9 Minuten).
Das Problem ist, dass es ein Problem ist, die richtige Version der Datenbank zu finden, wenn wir versuchen, einen neuen Build zu erstellen (zu jedem Zeitpunkt haben wir etwa 4 Entwicklerversionen für ein Projekt). Auch Git beginnt zu ersticken, sobald wir in die Produktion gehen, da die SQL-Dateien insgesamt rund 500 MB.
Die Frage ist:
Wie alle anderen Verwaltung von Datenbanken? Ich habe nach etwas gesucht, das es einfach macht, Daten aus der Produktion in Dev zu übernehmen und auch Daten von Dev in die Produktion zu migrieren, bin aber über nichts gestolpert.
Warum würden Sie wollen Daten von dev migrieren prod? –
@sheepsimulator - viele Frameworks (zB Magento, ATG, etc) speichern Konfigurationsdaten in der Datenbank, die portiert werden muss, um die Dev/Staging-Umgebung zu replizieren –