2017-01-11 7 views
1

残念ながら私はbaseTableSchemaNameを指定する以前の移行の問題に気づき、代替名のデータベースを作成できませんでした。 私は誰もこれらを変更して、生産のチェックサムをクリアする方法についてアドバイスを持っていないと思います。しかし、Grailsデータベースの移行 - 以前の移行の変更

grails dbm-clear-checksums

は私のために、Grailsの生産にインストールされていない、DEVで使用することができます。

MD5SUMをヌルに設定するdatabasechangelogテーブルを更新するだけで、これと最悪の場合を自動化することはできますか?

答えて

0

これは私が採用した解決策ですが、それは私が好きだったようにエレガントではないかもしれませんが、同様の状況で他の人を助けるかもしれません。

すべてのdatabasechangelogレコードを更新し、md5sum = nullを設定するだけです。新しいチェックサムは、次のデータベース移行の更新時に計算されます。

0

私はあなたの問題のすべての詳細を認識していません。特に、いくつのデータベース変更ログレコードを修正する必要があるかという問題があります。しかし、私は自分のアプリケーションで通常行ったことを共有することができます(私はgrails 2.5.5を使用します)。 たとえば、編集されたマイグレーションとチェックサムの不一致はほとんどありません。私は次のようにします:

  1. 開発環境でテストデータベースを作成し、すべての移行を最新のバージョンと同期させます。したがって、開発データベースでは、md5sumの正しい値が得られます。良いことは、それらの合計が環境に依存せず、移行コンテンツ自体にのみ依存していることです。
  2. 運用データベースに移動し、開発データベースから取得した正しい値でレコードを手動で更新します。
  3. 移行にチェックサムの競合があってはなりません。
+1

Tbh、私は個別のレコードを更新するのではなく、1つの手順でこれを修正しようと考えていました。 Grails 2.5.5も使用しています。私は実際に先に進んで、ソリューションをテストして、すべてのdatabasechangelogレコードを更新し、md5sum = nullに設定しました。これは私のために働いた。この簡単な方法で問題を解決していない理由はありますか?新しいチェックサムは、次回のデータベース移行の更新時に計算されます。 – dre

+0

@dre>この問題を回避するこの簡単な方法を採用しない理由はありますか? 実際には私の心には来なかった。あなたの結果をありがとう。私は次回私がそれに悩まされる時にそれをテストします:)私は答えとしてあなたの解決策を掲示し、受け入れられた答えとしてそれをマークしなければならないと思います。あなたのソリューションは私のものよりずっと簡単です。 –

+0

ありがとう@Andrej。それは私が探していたものではありませんでしたが、ヒットが他の人に役立つ場合は、それをどうにか追加します。 – dre

関連する問題