首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在database.yml中使用tnsnames.ora

在database.yml中使用tnsnames.ora
EN

Stack Overflow用户
提问于 2011-01-21 02:45:56
回答 2查看 840关注 0票数 1

在连接Rails时,如何使用tnsnames.ora中的数据库连接信息?

我尝试将database.yml中的database:host:字段设置为SID,但都不起作用。

我验证了sqlplus可以连接到数据库,所以tnsnames.ora是正确的。

我正在使用DataMapper on Rails 3,如果这有任何帮助的话。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-24 03:32:05

我想我们几天前在#datamapper上谈过。Sqlplus是一款Oracle软件,它与我认为是他们的负载平衡系统进行了接口。

DataMapper假设存储库和数据存储区之间存在一对一的映射。通常,这意味着您假设负载平衡是在数据存储端处理的(比如mysql或postgres集群)。

然而,如果有可能获得与每个存储库关联的每个数据存储上的负载读数(即编写自己的小负载平衡路由器),那么没有什么可以阻止某人编写一个库,让DataMapper在一组存储库之间进行热插拔。

我工作的公司正是以这种方式使用DataMapper存储库(为了记录的可分离性,而不是负载均衡)。

它就像这样简单:

代码语言:javascript
复制
DataMapper.repository(seed_repository_symbol) { return your_code_block.call }
票数 1
EN

Stack Overflow用户

发布于 2013-03-15 05:03:36

在我自己忙乱了几个小时之后,我发现答案是:

代码语言:javascript
复制
# WORKS
development:
  adapter: oracle
  host: devdb
  username: user
  password: pwd

我在Win7上使用Rails 3.2.1,DM 1.2.0,同时安装了32位和64位的普通Oracle客户端。

在此过程中,我发现了一件非常重要的事情:你必须在每个模块的database.yml之间重启rails开发服务器才能使更改生效。我浪费了很多时间而不知道这一点。由于某些原因,DataMapper安装程序在这里没有像开发服务器一样接收到更改。

历史:

我被告知答案是这样的(来自另一家公司的开发人员,他在Windows上使用JRuby ):

代码语言:javascript
复制
# DID NOT WORK
development:
  adapter: oracle
  database: user/pwd@devdb

这对我不起作用,我怀疑答案是使用冒号(基于DataMapper.setup语法):

代码语言:javascript
复制
# DID NOT WORK
development:
  adapter: oracle
  database: user:pwd@devdb

这也不起作用,所以我在IRM中测试了手动连接,并研究了来自DataMapper.setup的响应。它将SID放在host中,并且没有指示database,所以我在database.yml中尝试了相同的方法。啊,真灵。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4751165

复制
相关文章

相似问题

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