使用环境变量DATABASE_URL配置Active Record

时间:2014-11-12 11:41:12

标签: ruby-on-rails

我对ROR很新,我对如何使用环境变量 DATABASE_URL 配置Active Record有疑问。如果配置这个不需要保留database.yml中的值?此选项仅在生产中可用,或者也可以在开发环境中实现此选项吗?

谢谢

2 个答案:

答案 0 :(得分:0)

在config yml文件中,您可以为变量集声明环境:

EG。在database.yml中

development:
  adapter: mysql
  encoding: utf8
  database: dev
  username: root
  password: password
  socket: /var/run/mysqld/mysqld.sock
  backup: /home/usr/databackup
test:
  adapter: mysql
  encoding: utf8
  database: test
  username: root
  password: password
  socket: /var/run/mysqld/mysqld.sock
production:
  adapter: mysql
  encoding: utf8
  database: prod
  username: root
  password: password
  socket: /var/run/mysqld/mysqld.sock

一旦声明了这样的变量,您将在不同的环境中获得ENV['DATABASE_URL']的不同值(根据声明的值)。

答案 1 :(得分:0)

我的config/database.yml有一个:

production:
  url: <%= ENV['DATABASE_URL'] %>

这是我放入/etc/profile.d/user.sh文件的服务器上的环境变量,它是:

export RAILS_ENV=production
export DATABASE_URL=postgres://user:password@localhost/db_name
export SECRET_KEY_BASE=df577_etc_etc_etc_etc_9a6da0