【发布时间】:2015-03-28 17:05:05
【问题描述】:
Mina 无法加载 database.yml 文件中的环境变量,如下所述:
deploy.rb:
task :deploy => :environment do
deploy do
# Put things that will set up an empty directory into a fully set-up
# instance of your project.
invoke :'git:clone'
invoke :'deploy:link_shared_paths'
invoke :'bundle:install'
invoke :'rails:db_migrate'
queue! "#{rake} db:seed"
invoke :'rails:assets_precompile'
invoke :'deploy:cleanup'
end
end
vim ~/.bash_profile :
export MYSQLUSERNAME=mysql_user_name
export MYSQLPASSWORD=mysql_password
database.yml:
production:
adapter: mysql2
encoding: utf8
reconnect: false
database: my_db_name
pool: 5
username: <%= ENV['MYSQLUSERNAME'] %>
password: <%= ENV['MYSQLPASSWORD'] %>
错误:
$ mina deploy
.....
.......
-----> DB migrations unchanged; skipping DB migration
$ RAILS_ENV="production" bundle exec rake db:seed
rake aborted!
Mysql2::Error: Access denied for user 'root'@'localhost' (using password: NO)
/home/user_name/.rvm/gems/ruby-2.0.0-p247/gems/mysql2-0.3.16/lib/mysql2/client.rb:70:in `connect'
注意:如果我替换用户名(mysql_user_name)和密码(mysql_user_name)值而不是 和 在 database.yml 文件中,它运行良好。
谁能帮助我在使用 Mina 部署时如何在 *.yml 文件中加载 ENV 变量。
谢谢!
【问题讨论】:
-
您要部署到的目标机器上是否有这些环境变量?部署时,它很可能只是将 database.yml 文件复制到服务器,然后尝试启动应用程序。在这种情况下,环境变量需要在远程服务器上可用于该 bash 会话。
-
@Frost 是的,我在目标机器上有这些环境变量。问题是在部署项目本身时会引发错误。
-
这里有更新吗?
-
哦,在github上看到一个问题。您想在这里发布答案吗?
标签: ruby-on-rails ruby ruby-on-rails-4 mina