簡體   English   中英

如何使用Rails運行Sequel中的當前數據庫對象?

[英]How do I get the current database object in Sequel running with Rails?

我需要在Rails應用程序中從Sequel獲取當前數據庫對象。 我無法通過各種原因來定義它,比如“ Ruby中的事務續集模塊:如何獲取數據庫對象? ”中的建議。 我的數據庫使用database.yml中定義的JDBC。

我可以獲得Database.current ,但似乎我不能對它做任何操作,比如添加一個記錄器,就像我可以在另一個應用程序中為Sequel定義的DB對象上做的那樣:

lger = Logger.new(STDOUT)
DB.sql_log_level = :debug
DB.loggers << lger

Database.currentDatabase.current()上執行此操作會導致“無此方法”異常,因此我需要獲取Sequel使用的實際DB對象。

我花了一段時間才記住如何做到這一點,而且,我並不完全肯定它會與Rails一起工作,但是......

當使用Sequel的模型時,這可能是Rails發生的事情,你可以得到“DB”對象。 我有一張叫做acls的桌子。 我的模特是Acl 當我加載我的模型時,我可以這樣做:

require 'sequel'
require 'logger'

# ... make my connection then load my models ...

# turn on logging...
Acl.db.loggers << Loggers.new(STDOUT)
Acl.first 
# => I, [2013-02-18T16:55:13.561148 #94494]  INFO -- : (0.010879s) SELECT * FROM `acls` LIMIT 1

而且,這也有效:

Acl.db.sql_log_level = :debug

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM