Ruby on rails Vagrant、VirtualBox、Capistrano、db:migrate-无法连接到服务器
我刚刚读完了《部署Rails》一书,我被卡在capaistrano调用db:migrate的地方 我已经建立了两个虚拟机-应用程序和数据库-他们每个单独的工作性能。 虚拟机应用程序位于nginx/unicorn主机上,虚拟机数据库位于PostgreSQL主机上。 我可以“流浪ssh”进入虚拟机,一切看起来都很好 这是我定义了两个虚拟机的Vagrant文件(我使用的是Vagrant版本1.0.3): 正如您所看到的,发送到端口8080的数据被转发到端口80,这是一个tghe应用程序虚拟机,工作非常好 当PostgreSQL侦听端口5432时,我将端口转发设置为4532(主机)->4532(虚拟机) 但是,当运行“cap deploy:cold”或“cap deploy:migrate”时,会收到以下错误消息(cap deploy:migrate): 问题:Ruby on rails Vagrant、VirtualBox、Capistrano、db:migrate-无法连接到服务器,ruby-on-rails,capistrano,vagrant,dbmigrate,Ruby On Rails,Capistrano,Vagrant,Dbmigrate,我刚刚读完了《部署Rails》一书,我被卡在capaistrano调用db:migrate的地方 我已经建立了两个虚拟机-应用程序和数据库-他们每个单独的工作性能。 虚拟机应用程序位于nginx/unicorn主机上,虚拟机数据库位于PostgreSQL主机上。 我可以“流浪ssh”进入虚拟机,一切看起来都很好 这是我定义了两个虚拟机的Vagrant文件(我使用的是Vagrant版本1.0.3): 正如您所看到的,发送到端口8080的数据被转发到端口80,这是一个tghe应用程序虚拟机,工作非常
production:
adapter: postgresql
template: template0
username: log4jobuid
password: log4jobpwd
database: wl_prod
host: localhost
encoding: unicode
port: 5432
舒尔。它说它应该听“localhost”;-)但是如何配置它,以连接到另一个VM(“db”VM)
欢迎任何提示!
谢谢 好的,我明白了
找到答案的最好方法是写下问题;-)
我所犯的错误都在database.yml中
应该是这样的:
production:
adapter: postgresql
template: template0
username: log4jobuid
password: log4jobpwd
database: wl_prod
host: 33.33.13.38
encoding: unicode
port: 5432
“主机:”的IP地址应为DB VM的Vagrant文件中规定的IP地址:
db_config.vm.network :hostonly, "33.33.13.38"
现在我们知道,您可以使用虚拟机的IP地址从一个虚拟机“应用程序”连接到另一个虚拟机“db”
您还应该让舒尔为数据库指定正确的数据库名称、用户和密码。在我的例子中,我让puppet创建db,因此我在两侧使用相同的设置(现在;-)
production:
adapter: postgresql
template: template0
username: log4jobuid
password: log4jobpwd
database: wl_prod
host: 33.33.13.38
encoding: unicode
port: 5432
db_config.vm.network :hostonly, "33.33.13.38"