我不知道有这样做的好方法。这个讨论是相关的,但是:
http://www.mail-archive.com/[email protected]/msg02894.html
显然,有可能重新使用DataMapper.setup()
的连接,但似乎连接的关闭自动处理。
不过,也许这些意见将帮助:
这是可能的存储适配器,例如参考
a = DataMapper.setup(:default, "sqlite:db/development.sqlite3")
查看此对象显示,存储路径,这意味着它是针对特定的连接,而不是一般SQLite的适配器,或如:
p a
#<DataMapper::Adapters::SqliteAdapter:0x00000001aa9258 @name=:default, @options={"scheme"=>"sqlite", "user"=>nil, "password"=>nil, "host"=>nil, "port"=>nil, "query"=>nil, "fragment"=>nil, "adapter"=>"sqlite3", "path"=>"db/development.sqlite3"}, @resource_naming_convention=DataMapper::NamingConventions::Resource::UnderscoredAndPluralized, @field_naming_convention=DataMapper::NamingConventions::Field::Underscored, @normalized_uri=sqlite3:db/development.sqlite3?scheme=sqlite&user=&password=&host=&port=&query=&fragment=&adapter=sqlite3&path=db/development.sqlite3>
据推测,这可以在某种程度上被标记为垃圾收集什么的(只是简单地将它设置为nil
工作?)。
DataMapper::Adapters::DataObjectsAdapter
中还有一个close_connection()
方法,但它是受保护的,我不确定是否或如何使用此方法。
希望这提供了一些指针!