如何在運行時更改當前MongoMapper數據庫?在運行時更改MongoMapper當前數據庫
另外,有沒有一種方法將模型映射到名稱是動態計算的數據庫?例如:
class MyEntity
include MongoMapper::Document
set_database_name "#{some_dynamic_value}"
end
如何在運行時更改當前MongoMapper數據庫?在運行時更改MongoMapper當前數據庫
另外,有沒有一種方法將模型映射到名稱是動態計算的數據庫?例如:
class MyEntity
include MongoMapper::Document
set_database_name "#{some_dynamic_value}"
end
如果要使用特定的數據庫模型,做...
class MyEntity
include MongoMapper::Document
set_database_name "entities_database_development"
end
你可以做那裏的字符串插值,但只有當這個類被加載,然後再也不會。
要在每次需要數據庫時計算數據庫名稱,請覆蓋類或實例數據庫方法。
class MyEntity
include MongoMapper::Document
def database
connection.db("my_database_#{rand}_development")
end
end
查看persistence plugin source瞭解您可以通過覆蓋來實現哪種損害。
回答你的問題的第一部分,只是做:
MongoMapper.database = 'dbname'
我什至不需要創建一個新的連接?只需調用accessor =會爲我更改數據庫? – EdMelo
正確。 MongoMapper將使用現有的連接。 –
卓越。正是我在找的東西。 – EdMelo