0
我正在嘗試使用dotenv gem安全地存儲oci8連接的密碼。我.ENV文件看起來像這樣:當使用dotenv作爲密碼時,Ruby oci8失敗
# this file is stored in the same location as config.ru
SCOTT_PASS='tiger'
這是我的config.ru文件:
require 'dashing'
require 'dotenv'
Dotenv.load
configure do
set :auth_token, 'YOUR_AUTH_TOKEN'
helpers do
def protected!
# Put any authentication code you want in here.
# This method is run before accessing any resource.
end
end
end
map Sinatra::Application.assets_prefix do
run Sinatra::Application.sprockets
end
run Sinatra::Application
下面是該作業失敗。它失敗並出現空密碼錯誤(ORA-01005)。
SCHEDULER.every '1m', :first_in => 0 do |job|
conn = OCI8.new('scott', ENV['SCOTT_PASS'], 'orcl')
cursor = conn.parse("SELECT COUNT(*) FROM USER_TABLES")
cursor.exec
r = cursor.fetch
send_event('table_count', { current: r })
cursor.close
conn.logoff
end
我能夠證實Dotenv.load工作正常,因爲我是能夠成功地設置其他變量,因此似乎有一些關於OCI8連接是唯一的。
我對Ruby和編程都很陌生,所以我可能會忽略一些簡單的東西。謝謝!
這個'SCHEDULER'常量是什麼?它在哪裏定義,它是如何執行的? 'config.ru'有什麼相關性? – DMKE
啊。我應該提到這個代碼是使用dashing框架的儀表板的一部分(https://github.com/Shopify/dashing)。我相信調度程序部分只是rufus調度程序組件。 當我用實際密碼替代ENV ['SCOTT_PASS']時,作業代碼正常工作,這是我感到困惑的部分。 –