0

さて、問題はおそらくliquibaseへの私のアプローチにあります.データベース側にいくつかの変更を実装しました.変更セットを作成したいので、変更セットに新しいSQLファイルを追加するだけです. luquibase update コマンドを実行しようとすると、データベースにいくつかの列が存在するというエラーが表示されます。

私にとっては、変更セット スクリプトを作成する前に、データベースに列を追加しようとするのが普通です (つまり、PhpMyAdmin を使用します)。次に、この変更を他の開発者と共有したいので、(私の変更から) sql を生成し、これを sql ファイルに追加して、このファイルをチェンジセットで起動します。誰かが私が間違っていることを教えてもらえますか?

この問題は、mysql テーブルにいくつかの新しい列を追加したときの状況に関係しており、alter_table スクリプトを使用して SQL ファイルを作成し、liquibase update コマンドを実行しました。

4

2 に答える 2

0

データベースへのすべての変更を事前に Liquibase で行うのが理想的ですが、それが不可能な場合もあります。1つは、あなたが説明したユースケースです。もう 1 つの問題は、修正プログラムが運用環境に適用され、開発環境にマージする必要がある場合です。

変更セットが環境に適用されていることが確実な場合は、changelogSyncの実行を検討してください。すべての変更セットが適用されていることを確認し、Liquibase メタ テーブルを適切な情報で更新します。

理想的ではありませんが、人生が思い通りに進まないことがある現実世界のアプリケーションには、changelogSync が必要であると考えています。そのため、Datical DB で明確に公開するようにしました。現実と理想主義のバランスが取れていると思います。

于 2013-10-21T14:36:42.713 に答える
0

データベースを手動で更新しないでください。あなたの場合のように、すべてのスキーマの変更はliquibaseまたはそれ以外で行う必要があります-変​​更セットは既存のスキーマと競合します。

于 2013-03-13T14:00:28.083 に答える