在database.yml中使用tnsnames.ora
-
13-10-2019 - |
题
与Rails连接时,如何在tnsnames.ora中使用数据库连接信息?
我尝试设置 database:
或者 host:
数据库中的字段。
我验证了sqlplus可以连接到数据库,因此tnsnames.ora是正确的。
我在Rails 3上使用DatamApper,如果这完全有帮助。
解决方案
我认为几天前我们在#DatamApper中讲话。 SQLPlus是一块Oracle软件,它与我认为的负载平衡系统相结合。
DatamApper假设存储库和数据存储之间存在1到1映射。通常,这意味着您假设负载平衡是处理数据存储端(例如MySQL或Postgres群集)。
但是,没有什么可以阻止某人编写一个可以让DatamApper在一组存储库之间进行热交换的库,如果可以在每个存储库相关联的每个数据存储器上读取负载(即写下您自己的小负载)平衡路由器)。
我为使用DataMapper存储库的公司完全以这种方式(用于可分离记录,而不是用于负载平衡)。
就像:
DataMapper.repository(seed_repository_symbol) { return your_code_block.call }
其他提示
经过几个小时的大惊小怪,我发现答案是:
# WORKS
development:
adapter: oracle
host: devdb
username: user
password: pwd
我在Win7上使用Rails 3.2.1,DM 1.2.0,并安装了32位和64位常规客户端。
我一路上发现的一件非常重要的事情: 您必须在数据库的每个mod.yml之间重新启动Rails Dev Server。 我浪费了很多时间不知道。由于某种原因,DatamApper设置没有在这里拾取更改,例如Dev Server的正常情况。
历史:
有人告诉我答案是这个(另一家在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
. 。它把邦德放在 host
并且没有指示 database
因此,我在database.yml中尝试了相同的尝试。有效。