2012-02-09 17 views
0

私は実稼働環境に既存のデータベースを持っています。私はliquibaseでスキーマをエクスポートし、新しい顧客のためにインストールする際に使用する基本スクリプトを作成しました。 Liquibaseはmssqlのすべての私のid列をBIGINTとしてエクスポートしましたが、実際にはそれらはデータベース内のNUMERICでした。Liquibaseカラムのデータ型が混乱する

Now新しいテーブルと古いテーブルのforeightキーを作成するアップグレードスクリプトを追加すると、エラーが発生します。列は外部キーの参照列と同じデータ型ではありません。

アップグレードするだけで、クリーンインストールを行わないお客様は、データベースにNUMERIC列があり、新しいBIGINT列と衝突します。

それぞれのデータベースタイプについても異なるタイプであるため、私は何をすべきですか。私は迷っています

答えて

0

スキーマのエクスポートの仕事は、changeLogの開始点を得ることです。 liquibaseの次のバージョンは、エクスポートサポートを改善することに重点を置いていますが、エクスポートしているデータベースがタイプを持っているものと、あなたが "意味する"もの、特にクロスデータベースベースの意味に違いがあります。

通常、generateChangeLogを呼び出し、作成されたものを読み込み、必要に応じて変更して、データベースの理解に基づいてデータ型などを修正します。その時点から、データベースの変更が必要になったときに手動でchangeLogに追加し、データベースに対して変更された変更ログを実行する通常のリキーバスの流れを行います。