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.
Setup the multiple connections
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]"
)
Setup model connection
You can then just change the class property connection
in your model definition:
class OldUser
self.table = "users"
self.connection = "legacy"
end
Models between different connections should not share relations. We cannot guarantee the behavior in case you connect models between differents databases.
Other connection with SQL Builder
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| ... }
Last updated