1

私は、同じデータベースを使用する必要があるレガシーアプリと一緒に起動することを目的としたいくつかの新しいレールアプリを構築しているプロジェクトに取り組んでいます。レガシー データベースは Oracle を使用します。

クリーンにカットオーバーし、新しいアプリとレガシー アプリの両方を同じデータベースで実行しないことが理想的だと思いますが、この場合は単に不可能です。レガシー アプリは大きすぎて、ビジネスの中核となる非常に複雑なシステムを実行しています。少しずつ交換していくのがポイントです。

しかし、それを行うには、アプリケーションの各部分を処理する Rails アプリを起動し、現在動作しているレガシー アプリとデータベースを共有する必要があります。

私はかなり見回しましたが、どのような問題に遭遇する可能性があるか、またはそれが可能かどうかを説明している決定的な Rails ドキュメントを見つけることができませんでした。Heroku が単一のデータベースを指す複数の Rails アプリの実行をサポートするようになったことは知っています。これを行っている人々について多くの議論を見つけましたが、潜在的なリスクがどこにあるかを正確に特定するものは何もありません.

これは可能ですか?具体的にどのような問題が発生する可能性がありますか?

編集:明確にするために、レガシーアプリケーションはレールベースではありません。それはまったく異なる技術に基づいています。

4

1 に答える 1

1

これは可能ですが、特に 2 つのシステムが同じテーブルで移行を実行している場合は、十分に注意する必要があります。

理想的には、1 つのアプリケーションがデータベースを「所有」し、さまざまなテーブルの移行を担当しますが、これを分割して、一部のテーブルを 1 つのアプリケーションが所有し、一部を別のアプリケーションが所有するようにすることもできます。テーブルは、schema_migrationsこれらを個別に追跡できる必要があります。

両方のアプリケーションで同じテーブルに変更を加える必要がある場合、問題が発生します。これは、移行チェーンが独立しているため、一方の変更が他方の変更より前に行われることを保証する方法がないためです。

このようなことを避けるように注意していれば、通常は問題ありません。

両方のアプリケーションが連携して実行されたときに何が起こるかをシミュレートするための堅牢なテスト環境があることを確認してください。

于 2013-05-08T19:09:43.730 に答える