2012-05-01 4 views
2

私はHeroku上に2つのアプリケーションがあり、私はそれらに同じ専用データベースを使用したいと思います。問題は、この新しいアプリは、他のものと同じモデル/テーブルを持っているということです。Herokuの2つのアプリケーション間の専用データベース共有

私の質問は以下のとおりです。

  • 私は新しいアプリのテーブルの名前を変更する必要がありますか?

  • はいの場合、モデルの名前はどうですか?モデルを異なる名前のテーブルにマップすることは可能ですか? (userの代わりにモデルのようにnew_userテーブルのモデル)。

これを行う方法についての良いアドバイスをいただければ幸いです。

ありがとうございます!

答えて

2

一般的に、これは考えられるほど良い考えではありません。 Railsは、データベースに対して100%の制御権があると想定するように設計されています。

テーブルを分離して衝突させることができない場合でも、schema_migrationsテーブルでは依然として課題があります。この表には、すべてのマイグレーションが格納されており、両方のアプリケーションのすべての移行レコードが混在しています。たとえば、rake db:rollbackや他のレーキコマンドを実行しようとすると、これはアプリケーションを混乱させます。

schema.rbファイルが2つのアプリケーション間で同期しなくなる可能性があるという問題もあります。

私はデータベースを共有し、あなたがしようとしていることを達成するための他の方法があるかどうかを確認する理由を強くお勧めします。たとえば、アプリケーションを安心して接続するためにActive Resourcesを使用すると考えられます。

+0

わかりました。しかし、私は、それは最終的に 'schema_migrations'が正しく複製されるように、1つのデータベースの複数のスキーマを作成することは可能だと思いますか? –

+0

また、他のアプリが私の古いアプリと同じデータにアクセスしたいと思っている 'Active Resources'については?しかし、私の場合、私はそれらが同じデータを共有することを望んでいません... –

+0

単一のデータベースサーバを稼働させたいのですが、その単一のサーバに複数の「データベース/スキーマ」を持っても構いませんか? –

関連する問題