0

本番環境に既存のデータベースがあります。liquibaseを使用してスキーマをエクスポートし、新しい顧客のインストール時に使用するベーススクリプトを作成しました。LiquibaseはmssqlのすべてのID列をBIGINTとしてエクスポートしましたが、実際にはデータベースではNUMERICでした。

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

何が起こるかというと、アップグレードするだけの(そしてクリーンインストールを行わない)顧客はデータベースにNUMERIC列を持ち、新しいBIGINT列と衝突します。

問題は、データベースの種類ごとに異なる種類であるため、どうすればよいかということです。迷っています

4

1 に答える 1

0

スキーマ エクスポートの役割は、changeLog の開始点を取得することです。liquibase の次のバージョンでは、エクスポート サポートの改善に重点が置かれていますが、それでも、エクスポートするデータベースのタイプと、特に複数のデータベースにまたがる意味での「意味」との間には違いがあります。

通常の使用方法は、generateChangeLog を呼び出し、作成されたものを読み、必要に応じて変更して、データベースの理解に基づいてデータ型などを修正することです。その時点から、データベースの変更が必要なため手動で changeLog に追加し、データベースに対して変更された変更ログを実行するという通常の liquibase フローを実行します。

于 2012-03-06T16:44:14.130 に答える