我有一個使用ActiveRecord(2.3.12)訪問MySQL數據庫的ruby腳本。流程類似於「從配置文件讀取數據庫值」,「連接到數據庫」,「創建表A
如果它不存在」,「下載並解析文件」,「將解析的記錄保存到A
」。ActiveRecord實際連接到數據庫的哪一點?
的代碼如下所示:
ActiveRecord::Base.establish_connection(
:adapter => 'mysql',
:database => database_name,
:username => username,
:password => password,
:host => "localhost",
:port => 3306
)
...
ActiveRecord::Schema.define do
create_table a, :force => true do |t|
t.string :last_name, :limit => 60, :default => "", :null => false
t.string :first_name, :limit => 30, :default => "", :null => false
t.string :middle_initial, :limit => 2, :default => ""
t.string :dob, :limit => 12, :default => "", :null => false
end
end unless A.table_exists?
但是,如果我把不正確數據庫憑據,或者一個不存在的數據庫名稱爲establish_connection
方法,劇本似乎並沒有給出任何錯誤或拋出任何異常,直到我實際嘗試對數據庫執行一些操作(即創建表A
)。我嘗試了begin-rescue-end
約establish_connection
,但它從未進入rescue
塊。
爲什麼establish_connection
似乎不是真的......好......建立連接?而對於我的生活,我無法弄清它甚至應該返回什麼。文檔HERE當然似乎沒有任何幫助。
或者我做錯了什麼?請幫忙!