Ich kontrolliere den größten Teil meiner Arbeit mit Git : Code, Dokumentation, Systemkonfiguration. Ich kann das, weil alle meine wertvollen Arbeiten als Textdateien gespeichert sind.
Ich habe auch viele SQL-Schemata für unsere Postgres-Datenbank geschrieben und bearbeitet. Das Schema enthält Ansichten und SQL-Funktionen, und wir werden Postgres-Funktionen in der Programmiersprache R (über PL / R ) schreiben .
Ich habe versucht, das Chunks-Schema, das ich und meine Mitarbeiter schreiben, zu kopieren und einzufügen, aber ich habe vergessen, das zu tun. Das Kopieren und die vergangene Aktion wiederholen sich und sind fehleranfällig.
Die Methode pg_dump / pg_restore funktioniert nicht, da Kommentare verloren gehen.
Idealerweise möchte ich eine Möglichkeit haben, mein aktuelles Schema in eine Datei oder Dateien zu extrahieren und die Kommentare beizubehalten, damit ich die Versionskontrolle durchführen kann.
Was ist die beste Vorgehensweise zum Versionskontrollschema mit Kommentaren?
quelle
COMMENT ON
in einer Umgebung ohne Postgres verfügbar? Ich denke nicht, dass es Standard-SQL ist. was bedeutet , diese könnte Postgres spezifisch sein.Antworten:
Warum nicht
COMMENT ON
die verschiedenenSCHEMA
Komponenten, so dass Ihre Kommentare im Schema sind und ausgegeben werden.quelle
Versionskontrollschemata waren für mich immer problematisch. Im Allgemeinen kontrolliere ich das Schema, das mit dem von mir verwendeten Datenmodellierungswerkzeug generiert wurde. Das Modell ist auch versioniert. Ich verwende Unterschiede zwischen dem aktuellen und dem vorherigen Schema, um den Patch zu erstellen, der zum Aktualisieren des Schemas erforderlich ist. Einige Modellierungswerkzeuge erstellen verwendbare Schemaaktualisierungsskripte. Die Update-Skripte sind ebenfalls versioniert.
Ich sehe gelegentlich Skripte, die das Schema in einem Format sichern sollen, das zum Neuerstellen des Schemas geeignet ist. Eines davon könnte das sein, wonach Sie suchen. Einige der Modellierungs- und Abfragetools können Schemaregenerierungsskripts aus einem vorhandenen Schema erstellen. Wenn Sie dies skripten können, erhalten Sie möglicherweise eine Datei, die für die Versionskontrolle geeignet ist.
quelle
Eine Alternative (oder Sie können sie kombinieren) zu meinem früheren Vorschlag besteht darin, Ihren SQL-Code in Ihren Editor (IDE) zu schreiben, die Dateien zu speichern und sie in Ihr VCS zu übertragen, nachdem Sie den Code in der Datenbank mit ausgeführt haben
psql -1f
. Auf diese Weise wird der Code versioniert, bevor er ausgeführt wird.quelle
Ich arbeite in einem ähnlichen Projekt. Dies ist mein Entwurfsvorschlag:
Wenn Sie kein Repo verwenden, erstellen Sie eine einfache Tabelle im CSV-Textformat wie in der folgenden Tabelle:
version | file name | date | description | 1.0 | yyyymmdd-v10.dump | yyyymmdd | new version of user table | 1.1 | backupDB-v11.dump | yyyymmdd | normalized reports tables |
Indem Sie eine Beziehung in der CSV-Datei der generierten Speicherauszüge nach Dateinamen beibehalten, können Sie diese auf einfache Weise verfolgen und sicherstellen, dass die Wiederherstellung funktioniert, da Sie absolut alles gesichert haben.
Heutzutage sollte jeder Cloud-Speicher oder Speicher vor Ort nicht so teuer sein, selbst wenn es um TBs von Daten geht. Es gibt einige Wutanfälle von 700 bis 1000 USD mit bis zu 16 TB .
Sie können sogar viel mehr Geld sparen, wenn Sie in eine Speicherwolke wie die beliebteste AWS S3 wechseln
Wenn die Standards eines guten Designs und einer guten Organisation definiert werden, um die gesamte IT-Infrastruktur und die Ressourcen im Auge zu behalten, sollte dies nach der Implementierung nicht schmerzhaft sein. Dies kann relativ einfach sein und spart Ihnen Konfigurationsprobleme und vor allem Zeit ...
quelle