/ / Ruby on Rails MySQL-Socket von Environment - mysql, ruby-on-rails, ruby

Ruby on Rails MySQL-Socket von Environment - mysql, ruby-on-rails, ruby

Ich hasse es, den Pfad zum MySQL-Socket zu habenhart-codiert in meine Rails YAML-Dateien. Es neigt dazu, Dinge zu brechen, wenn Sie die App auf einer Reihe von verschiedenen Systemen für die Entwicklung ausführen möchten. Gibt es einen offiziellen Weg, um eine Umgebungsvariable o.ä. zu verwenden? Derzeit benutze ich das:

diff --git a/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb b/vendor/rails/activerecord/
index 69e97b9..992387c 100644
--- a/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
+++ b/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
@@ -50,7 +50,7 @@ module ActiveRecord
config = config.symbolize_keys
host     = config[:host]
port     = config[:port]
-      socket   = config[:socket]
+      socket   = ENV["MYSQL_SOCK"] || config[:socket]
username = config[:username] ? config[:username].to_s : "root"
password = config[:password].to_s
database = config[:database]

Antworten:

3 für die Antwort № 1

Sie sollten für jedes System eine andere Datenbank.yml-Datei haben, da diese nicht in Ihr VCS eingecheckt werden sollte.