【问题标题】:How to set database.yml conditions for each OS?如何为每个操作系统设置 database.yml 条件?
【发布时间】:2014-10-30 14:50:33
【问题描述】:

我想在 Linux 和 Windows 中设置 sprocket。都在我的database.yml中,怎么办?

现在:

development:
adapter: mysql2
encoding: utf8
database: skeletor_dev
pool: 25
username: root
password: 
socket: /private/var/mysql/mysql.sock

我想要类似的东西:

development:
  adapter: mysql2
  encoding: utf8
  database: skeletor_dev
  pool: 25
  username: root
  password: 
  socket: /private/var/mysql/mysql.sock if os => windows
  socket: /private/var/mysql/mysql.sock if os => linux

有可能吗?怎么做?

【问题讨论】:

  • 你可以做多个环境,比如development_windows:和development_linux,并按照明智的rake db:migrate RAILS_ENV=development_windows定义套接字
  • 这不是我想要的……

标签: ruby-on-rails ruby database yaml


【解决方案1】:

使用 ERB。

development:
  socket: <%= %w[windows linux].include?(ruby_code_to_get_os) ? '/path/to/sock' : nil %>

显然,您必须弄清楚如何最好地确定平台本身,但这应该能让您继续前进。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多