在连接Rails时,如何使用tnsnames.ora中的数据库连接信息?
我尝试将database.yml中的database:或host:字段设置为SID,但都不起作用。
我验证了sqlplus可以连接到数据库,所以tnsnames.ora是正确的。
我正在使用DataMapper on Rails 3,如果这有任何帮助的话。
发布于 2011-01-24 03:32:05
我想我们几天前在#datamapper上谈过。Sqlplus是一款Oracle软件,它与我认为是他们的负载平衡系统进行了接口。
DataMapper假设存储库和数据存储区之间存在一对一的映射。通常,这意味着您假设负载平衡是在数据存储端处理的(比如mysql或postgres集群)。
然而,如果有可能获得与每个存储库关联的每个数据存储上的负载读数(即编写自己的小负载平衡路由器),那么没有什么可以阻止某人编写一个库,让DataMapper在一组存储库之间进行热插拔。
我工作的公司正是以这种方式使用DataMapper存储库(为了记录的可分离性,而不是负载均衡)。
它就像这样简单:
DataMapper.repository(seed_repository_symbol) { return your_code_block.call }发布于 2013-03-15 05:03:36
在我自己忙乱了几个小时之后,我发现答案是:
# 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 ):
# DID NOT WORK
development:
adapter: oracle
database: user/pwd@devdb这对我不起作用,我怀疑答案是使用冒号(基于DataMapper.setup语法):
# DID NOT WORK
development:
adapter: oracle
database: user:pwd@devdb这也不起作用,所以我在IRM中测试了手动连接,并研究了来自DataMapper.setup的响应。它将SID放在host中,并且没有指示database,所以我在database.yml中尝试了相同的方法。啊,真灵。
https://stackoverflow.com/questions/4751165
复制相似问题