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