Ich glaube nicht, dass es eine einzige Lösung gibt, die in allen Fällen funktioniert, da dies von der Empfindlichkeit der Daten in den Konfigurationsdateien oder der von Ihnen verwendeten Programmiersprache und so vielen anderen Faktoren abhängen kann. Ich denke jedoch, dass es wichtig ist, die Konfigurationsdateien für alle Umgebungen unter Quellcodeverwaltung zu halten, damit Sie immer wissen, wann sie geändert wurden und von wem und was noch wichtiger ist, sie wiederherstellen können, wenn etwas schief geht. Und sie werden.
Also hier ist, wie ich es mache. Dies ist normalerweise für NodeJS-Projekte, aber ich denke, es funktioniert auch für andere Frameworks und Sprachen.
Ich erstelle ein configs
Verzeichnis im Stammverzeichnis des Projekts und speichere unter diesem Verzeichnis mehrere Dateien für alle Umgebungen (und manchmal auch separate Dateien für die Umgebung jedes Entwicklers), die alle in der Quellcodeverwaltung verfolgt werden. Und da ist die eigentliche Datei, die der Code verwendet, benannt config
im Stammverzeichnis des Projekts. Dies ist die einzige Datei, die nicht verfolgt wird. So sieht es also aus
root
|
|- config (not tracked)
|
|- configs/ (all tracked)
|- development
|- staging
|- live
|- James
Wenn jemand das Projekt auscheckt, kopiert er die Konfigurationsdatei, die er in der nicht verfolgten config
Datei verwenden möchte, und kann sie nach Belieben bearbeiten. Er ist jedoch auch dafür verantwortlich, diese Änderungen zu kopieren, bevor er sie nach Bedarf in die anderen Umgebungsdateien überträgt.
Auf Servern kann die nicht verfolgte Datei einfach eine Kopie (oder Referenz) der verfolgten Datei sein, die dieser Umgebung entspricht. In JS können Sie einfach 1 Zeile haben, um diese Datei zu benötigen.
Dieser Ablauf mag zunächst etwas kompliziert sein, hat jedoch große Vorteile: 1. Sie müssen sich keine Sorgen machen, dass eine Konfigurationsdatei auf dem Server gelöscht oder geändert wird, ohne über ein Backup zu verfügen. 2. Dasselbe gilt, wenn ein Entwickler eine benutzerdefinierte Konfiguration auf seinem Server hat Maschine und seine Maschine funktionieren aus irgendeinem Grund nicht mehr 3. Vor jeder Bereitstellung können Sie die Konfigurationsdateien für development
und staging
zum Beispiel unterscheiden und prüfen, ob etwas fehlt oder defekt ist.