2017-02-25 8 views
0

私は長いセットのliquibaseチェンジセットを持っています。そのうちの1人がMySQLプロシージャを作成しましたが、特定のMySQLオプションが設定されていない限り(log_bin_trust_function_creators = 1)、このプロシージャは作成されず、結果的にすべてのliquibaseスクリプトが失敗することがわかりました。liquibaseスクリプトのエラーを修正しました

この手順を作成したチェンジセットは、歴史が深いものです。それを変更するための正しいアプローチは何ですか?新しい変更セットを追加すると、手続きを修正することはできません。以前のものでは処理全体が失敗するためです。私は、このliquibaseスクリプトによって管理されるデータベースを持つ約100のサーバを持っています。私は実際にそれらを修正する必要はありません、私はちょうど(将来のサーバーのために)スクリプトを変更し、次にliquibaseがそれらを更新する既存のサーバーを壊さないようにする必要があります。

答えて

0

既存の(無効な)チェンジセットのコードを正しいものに変更し、その属性にrunOnChange = "true"を追加することができます。新しいサーバーに適用された場合、最初から正しい手順が適用されます。それを古いサーバーに適用すると、ただ修正されますか?

+0

さて、手順は古いサーバー上に既に存在しているため、再作成しようとするとエラーが発生します。 –

+0

'create or replace'をSQLプロシージャーに入れることができないので、既存のものに置き換えられますか? – dbf

+0

mysql 5.7 –

関連する問題