サブドメインレールごとに 1 つのデータベースから 1 つのデータベースに切り替える方法
概要
すべてが 1 つの Postgres データベースに保存されるマルチテナント アプリがあります。すべてのモデルには account_id があるため、顧客が表示できるデータは account_id に基づいています。これは完璧に機能しますが、セキュリティとプライバシーの懸念により、顧客はデータを別のデータベースに保存することを要求します。では、これを実現するには何をする必要があるのでしょうか?顧客がログインすると、独自のデータベースに接続しますか?現在のデータを複数の顧客データベースに移行する最善の方法は何でしょうか?
アパートメントジェムを試してみます
解決策
別のデータベースを作成する代わりに、別のスキーマを使用してみてください。
これは、データベースに顧客ごとに異なるテナントを作成することを意味します。 psql ではデフォルトでマルチテナンシーの概念がサポートされています。
アパートジェムを使用する予定がある場合、要件に最適な選択でした。マルチテナント ロジックの処理がはるかに簡単になるためです。
これを利用すると、各顧客のデータを別の顧客から分離できます。私もこの方法論を使用しましたが、非常に完璧にうまくいきました。
顧客ごとに 1 つのデータベースを維持し、拡張するのは、間違いなく苦痛です。
これがあなたのお役に立てば幸いです:)