首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在来宾linux上运行rails :一个database.yml问题

在来宾linux上运行rails :一个database.yml问题
EN

Stack Overflow用户
提问于 2013-08-19 17:34:09
回答 2查看 228关注 0票数 0

( a)我是rails初学者开发人员,我使用windows 7机器作为开发环境。

( b)使用VirtualBox,我刚刚在Windows7“主机”内安装了一个Linux服务器“来宾”,只是为了在linux机器上运行rails开发环境。

( c)为此,我配置了一个virtualbox共享文件夹:假设我在主机上拥有这个共享文件夹(窗口):

c:\rails\esamiAnatomia

并在linux嵌入式服务器上挂载:

/家庭/独身症/宿主/涅槃症

( d)在这个扩展的“开发环境”中,我希望在windows (崇高文本)上用我喜欢的可视化编辑器编辑源文件,并在linux上运行rails服务器。

这个问题涉及到database.yml配置文件:

/home/solyaris/host/esamianatomia/config/database.yml

因为在Windows上,我有一个数据库(postgresql)响应端口5433,具有特定的用户名/密码

但是在linux数据库中,响应端口5432等。

问题:

1)“架构解决方案可以吗?”(我的意思是:在windows 7主机上开发/编辑,但运行linux客户服务器的rails服务器);

2)有一种动态更改/配置database.yml的方法(我的意思是:使用两个不同的database.yml文件:一个用于linux机器,另一个用于窗口机器)?

非常感谢乔治

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-19 19:11:31

您所描述的几乎是流浪汉提供的设置,所以是的,您做得很好,其他人也在做,但是他们没有自己设置它(这样可能也会得到一些非常好的插件,您应该看看Vagrant)。

关于你的第二个问题:不。不是在飞。Rails加载database.yml端,然后用它连接到数据库。当您在Rails服务器运行时更改它时,这些更改将不会被注意到。但是,您可以为两台不同的机器设置一个新的环境。然后您可以在不同的环境之间切换,并根据不同的环境访问一个或另一个数据库。

票数 0
EN

Stack Overflow用户

发布于 2013-10-14 18:42:38

如果你不害怕使用Rails的内脏,你就可以在技术上完成2。与任何让您访问内部rails组件的解决方案一样,这在任何时候都可能停止工作,但幸运的是,API的这一部分不太可能经常更改,如果有的话。尽管如此,你还是要冒着自己的风险使用这个。

我在我的项目中就是这样做的。首先,按以下方式修改应用程序:

代码语言:javascript
运行
复制
# config/application.rb:

# After require 'rails/all'
require_relative 'db_override'

然后创建这个新文件:

代码语言:javascript
运行
复制
# config/db_override.rb:
case Socket.gethostname
when 'host1'
  $db_config = 'config/host1_database.yml'
when 'host2'
  $db_config = 'config/host2_database.yml'
else
  $db_config = nil # Use the default config/database.yml
end

if $db_config
  class DBConfigSelect < Rails::Railtie
    initializer "db_config_select", before: "active_record.initialize_database" do
      puts "Using custom DB configuration: #{$db_config}"

      # Get the existing path configuration
      cur_paths = Rails.application.config.paths['config/database'].instance_variable_get :@paths

      # Override the default config sources
      cur_paths.shift
      cur_paths.push $db_config
    end
  end
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18319710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档