我讨厌将 MySQL 套接字的路径硬编码到我的 Rails YAML 文件中。如果您想在一堆不同的系统上运行应用程序进行开发,它往往会破坏事情。有什么官方方法可以让它使用环境变量或类似变量吗?目前我使用这个:
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]
最佳答案
您应该为每个系统拥有不同的database.yml 文件,因为不应将其检入您的VCS。
关于mysql - 环境中的 Ruby on Rails MySQL 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4269847/