Was ist der beste Weg, um mit der Rails database.yml umzugehen, wenn mehrere Personen am Projekt arbeiten und die Datenbankspeicherorte unterschiedlich sind (insbesondere der Socket).
mysql
ruby-on-rails
svn
Phillee
quelle
quelle
Antworten:
Wechseln Sie zunächst
database.yml
zu einer Vorlagendatei.Wenn du auf Git bist:
Oder wenn Sie auf Subversion sind:
Zweitens ignorieren Sie die .yml-Version.
Wenn du auf Git bist:
Wenn Sie auf Subversion sind:
Drittens installieren Wo ist deine database.yml, Alter? ::
Dieses Plugin warnt Entwickler, bevor Rake-Aufgaben ausgeführt werden, wenn sie keine eigene lokale Version von erstellt haben
config/database.yml
.Viertens: Richten Sie eine Capistrano-Bereitstellungsaufgabe ein:
Fünftens laden Sie die Serverversion von database.yml hoch:
quelle
cat >> .gitignore
stattdessen zu verwenden. Da Sie sonst Ihre vorhandene DateiIn Capistrano 3 können Sie anstelle der neuen Aufgabe einfach Folgendes tun:
quelle
Sie können die Eigenschaft svn: ignore verwenden, um zu verhindern, dass diese Datei versioniert wird.
Anleitung hier.
quelle
Eine weitere Methode, bei der capistrano ein ERb verwendet, um während der Bereitstellung nach den Anmeldeinformationen zu fragen.
http://www.simonecarletti.com/blog/2009/06/capistrano-and-database-yml/
quelle
Zusätzlich zu den obigen Antworten habe ich eine Rake-Aufgabe geschrieben, die "Wo ist Ihre database.yml, Alter?" Ähnlich ist, aber es erlaubt, Vorlagenbeispiele für jede Konfigurationsdatei beizubehalten. Probieren Sie es aus: https://github.com/Velid/exemplify
Als Alternative zum Schreiben separater Produktionskonfigurationen und zum Verknüpfen dieser über Capistrano würde ich auch vorschlagen, Umgebungsvariablen für Ihre Anmeldeinformationen zu verwenden:
Es gibt viele praktische Tools und Möglichkeiten , dies zu tun.
quelle