Comment on page
Handling multi-connection
Often you will need to connect to two or more database, due to legacy code.
Clear offers multi-connections possibility, and your model can live in a specific database.
If not multiple connection are set, clear use
default
connection as living place for the models. Clear::SQL.init("default", "postgres://[USER]:[PASSWORD]@[HOST]/[DATABASE]")
Clear::SQL.add_connection("secondary", "postgres://[USER]:[PASSWORD]@[HOST]/[DATABASE]")
You can also use hash notation:
Clear::SQL.init(
"default" => "postgres://[USER]:[PASSWORD]@[HOST]/[DATABASE]",
"legacy" => "postgres://[USER]:[PASSWORD]@[HOST]/[DATABASE]"
)
You can then just change the class property
connection
in your model definition:class OldUser
self.table = "users"
self.connection = "legacy"
end
Migrations always occurs to the database under
default
connectionModels between different connections should not share relations. We cannot guarantee the behavior in case you connect models between differents databases.
In low-level API, you can call
use_connection
to force a request to be called on a specific collection:Clear::SQL.select.use_connection("legacy").from("users").fetch{ |u| ... }