Clear ORM
Search…
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

1
Clear::SQL.init("default", "postgres://[USER]:[PASSWORD]@[HOST]/[DATABASE]")
2
Clear::SQL.add_connection("secondary", "postgres://[USER]:[PASSWORD]@[HOST]/[DATABASE]")
Copied!
You can also use hash notation:
1
Clear::SQL.init(
2
"default" => "postgres://[USER]:[PASSWORD]@[HOST]/[DATABASE]",
3
"legacy" => "postgres://[USER]:[PASSWORD]@[HOST]/[DATABASE]"
4
)
Copied!

Setup model connection

You can then just change the class property connection in your model definition:
1
class OldUser
2
self.table = "users"
3
self.connection = "legacy"
4
end
Copied!
Migrations always occurs to the database under default connection
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:
1
Clear::SQL.select.use_connection("legacy").from("users").fetch{ |u| ... }
Copied!
Last modified 1yr ago