我使用 Sinatra 编写了一个使用 ActiveRecord 访问 Oracle 数据库的服务器(尽管这不是 Rails 应用程序)。我用 Sinatra 的“经典”风格编写它,之前启动服务器是这样的:
bundle exec ruby bin/server.rb
我还使用require 'thin'
了 Thin 神奇地用作 HTTP 服务器。但是,我需要更改 Thin 的默认超时,所以我转换到了一个 rackupconfig.ru
文件。我现在像这样启动服务器:
bundle exec thin -C config/thin.yml -R config/config.ru start
但是,由于这样做,我无法使用服务器连接到 Oracle 数据库。我正在使用服务名称并且TNS_ADMIN
环境变量设置正确,如果不使用 Thin 启动,我可以连接sqlplus
甚至同一台服务器。使用 Thin 启动,当我尝试启动连接时,我得到OCIError - ORA-12154: TNS:could not resolve the connect identifier specified
.
为使用 Thin 启动的服务器设置环境变量的正确方法是什么?这里的解决方案不起作用,因为我不能给 ruby-oci8 信息,它会自动从环境中读取它们。