はじめに Web アプリでマルチテナントをやる場合、 すべてのテーブルに tenant_id を追加してデータを分けるのではなく、 テナントごとにデータベースを分けたい。 データベースを分けておけば、バグで他のテナントのデータまで変更してしまう可能性を減らせる。 データベースを分けたマルチテナントをサポートする、 『Apartment』という gem を使った記事を以前書いた。 Heroku 上での運営を考えているので、 Heroku 上でもテナントごとにデータベースを分けたマルチテナントが可能か試してみた。 なお、Heroku Postgres を使うから、厳密にはテナントごとにスキーマを分けることになる。 Heroku にデプロイ Rails + Apartment でマルチテナントな Web サービスを作る - present で作成した Rails プロジェクトを使うことが前提。
![Heroku でマルチテナントな Rails アプリを実現する - present](https://cdn-ak-scissors.b.st-hatena.com/image/square/8807f15334fcfe085ae1440d4eae02b6ddd6d6f6/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fg%2Fgriefworker%2F20140725%2F20140725215141.png)