Techioz Blog

サブドメインレールごとに 1 つのデータベースから 1 つのデータベースに切り替える方法

概要

すべてが 1 つの Postgres データベースに保存されるマルチテナント アプリがあります。すべてのモデルには account_id があるため、顧客が表示できるデータは account_id に基づいています。これは完璧に機能しますが、セキュリティとプライバシーの懸念により、顧客はデータを別のデータベースに保存することを要求します。では、これを実現するには何をする必要があるのでしょうか?顧客がログインすると、独自のデータベースに接続しますか?現在のデータを複数の顧客データベースに移行する最善の方法は何でしょうか?

アパートメントジェムを試してみます

解決策

別のデータベースを作成する代わりに、別のスキーマを使用してみてください。

これは、データベースに顧客ごとに異なるテナントを作成することを意味します。 psql ではデフォルトでマルチテナンシーの概念がサポートされています。

アパートジェムを使用する予定がある場合、要件に最適な選択でした。マルチテナント ロジックの処理がはるかに簡単になるためです。

これを利用すると、各顧客のデータを別の顧客から分離できます。私もこの方法論を使用しましたが、非常に完璧にうまくいきました。

顧客ごとに 1 つのデータベースを維持し、拡張するのは、間違いなく苦痛です。

これがあなたのお役に立てば幸いです:)