0

私たちのテーブル (Oracle データベース 11g) には、シーケンスによって生成された PK があります。これらの ID は、環境間で同期されていません。テーブル A を変更する場合、PK を無視して自然キーを使用するスクリプトを作成する必要があります。たとえば、DEV で ID 102843 とパレット コード YU9 のパーツを更新した場合、ID 102843 の製品に対して更新を発行できません。パーツ コード YU9 の更新を発行する必要があります。テーブルは ID に基づいて結合されるため、関係するテーブルが増えるにつれて、これはますます複雑になります。

とにかく、私たちはこのための SQL スクリプトを生成し、私の人生を悪夢から解放してくれるツールを探していました。フライウェイできますか?ところで、誰かがそのような製品を知っているなら、私はそれについて聞きたいです (私は Redgate などと話しました.その通り)

明確化: システムがどのように機能するかを尋ねているわけではありません。これが仕組みであり、すぐに変わることはありません。flyway 製品が役立つかどうかを尋ねているだけです。

4

3 に答える 3

1

多くの議論の後、他の環境のシーケンスを削除することになりました。基本的に、PROD を DEV に複製しました。次に、PROD のシーケンスを取り除き、DEV のシーケンスによって生成された ID を使用して、レコードを DEV から PROD に移動するだけです。
または、言い換えれば、単にそれらの問題を取り除きました。

于 2015-02-11T19:33:27.937 に答える
0

環境間でレプリケートされた参照データがあるようです。なぜシーケンスを使用するのですか? 手動 ID を割り当てるだけで、問題は解決します。

自然キーに基づいて手動 ID を再割り当てし、シーケンスを削除する最終移行を発行できます。

于 2012-10-24T06:50:08.237 に答える