12

列の非 null 制約を削除するための db アップグレード スクリプトがあります。前提条件チェックを行い、ALTER TABLEnull 以外の場合にのみ呼び出したい。

master.xml スクリプトは、スクリプトを追加し続けるプログレッシブ スクリプトであり、すべてが毎回実行されます。Alter Table スクリプトを初めて実行した後は、再度実行したくありません。

これに対する定義済みの前提条件が見つからず、sqlcheck も書き込めませんでした。

4

3 に答える 3

2

私の答えを修正します。Liquibase は、次のように null でない制約の追加操作をサポートしています

<changeSet author="me" id="example-001">
    <addNotNullConstraint 
        tableName="mytable"    
        columnName="mycol"
        columnDataType="VARCHAR(10)"
        defaultNullValue="NULL"/>
</changeSet>

これにより、null の列が自動的に処理されます。この例では、テキスト文字列 "NULL" が入力されます。

この変更セットに前提条件は必要ないと思います。最悪の場合、既存の列の制約を 1 回再適用します。Liquibase はすべての変更セットを追跡し、それらが再度実行されないようにします。

于 2013-07-19T18:20:10.980 に答える