Frage

Ich habe angefangen, Merkurial für die Versionsregelung meiner Drupal-Projektquelldateien zu verwenden (ich bin sowohl ein VCS als auch ein Mercurial-Neuling). Die Datenbank wird jedoch mit einem Verzeichnis von datierten .sql.gz-Dateien weiterhin "Version kontrolliert".

Ich möchte, dass irgendwo in meinem Repository eine einzelne Datenbank -Dump -Datei mit einem aktuellen Dump überschrieben wird, wenn sich die Datenbank ändert und in die Datenbank importiert wird, wenn ich zu einer anderen Version rollen möchte.

Ich habe es manuell gemacht und es hat funktioniert. Aber was ich wirklich mögen würde, ist etwas, das das Dumping/Laden automatisch in jedem Commit/Update macht. Ich würde es wirklich vorziehen, dass es sich in Quecksilber einversetzen würde, als etwas Externes wie ein Makefile zu sein, das zuerst die Datenbank entpackt und dann verpflichtet, da ich gerne mit Schildkröstens Tools arbeite, und ich habe kein Lust, ein anderes Skript zum Laufen zu haben.

Nun, es scheint, dass so etwas wie eine mysql .... < dumpfile.sql auf an update Hook wäre eine einfache Möglichkeit, den Datenbank -Dump nach jedem Update zu laden. Aber was ist mit dem automatischen Dumping?

Da war ein Ähnliche Frage Über SVNs Pre-Commit-Haken, und die akzeptierte Antwort war, dass es wahrscheinlich eine schlechte Idee ist. Gilt es für Mercurial? Vielleicht noch ein Haken (prechangegroup?) würde funktionieren?

BEARBEITEN:

Ich sollte darauf hinweisen, dass ich es alleine auf meiner lokalen Maschine benutze. Es sollte nicht über einen einzelnen Benutzer hinaus skalieren.

War es hilfreich?

Lösung

Es sollte in Ordnung sein, die Datenbank mit a abzuwerfen pre-commit Haken. Achten Sie einfach darauf, keine zu verwenden precommit Haken, da es eine andere Sache ist (läuft in der Transaktion).

Im Allgemeinen für jeden Befehl (update, commit, usw.) die pre-<command> Hook wird ausgeführt, bevor der Befehl ausgeführt wird.

Andere Tipps

Es scheint, als wäre dies eher ein Aktualisierungsvorgang. Ich nehme an, Sie haben an der Datenbank gearbeitet, absichtlich das SQL -Schema exportieren und sich begangen. Das Problem kommt, wenn jemand anderes von Ihnen (oder einem anderen Ort) aktualisiert wird oder Sie von ihm aktualisieren. Mercurial hat a Haken für Updates.

Eine Alternative wäre es, Ihr eigenes Quecksilber -Plugin/Ihre eigene Mercurial -Erweiterung zu erstellen, mit der tatsächlich ein Verzeichnis in Ihrer Datenbank (MySQL) sprechen kann und möglicherweise nützlichere Informationen liefern kann. Das alles hängt davon ab, dass Sie ein bisschen Python kennen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top