私はデータベースのMSSQLとOracleの実装をサポートするためにLiquibaseを使用しています。データベースはすでに存在します。Liquibaseにコレートのサポートを追加する
テーブル列に照合をサポートしたいと考えています。例:
<createTable tableName="my_table">
<column autoIncrement="true" name="id" type="int">
<constraints nullable="false"/>
</column>
<column name="name" type="varchar(50)"/>
<ext:column name="description" type="varchar(250)" collate="Latin1_General_CS_AS"/>
</createTable>
私はMSSQLの新しい属性を最初に処理したいだけです。私はmodifySql
タグが拡張子を使わずにcollate
をサポートする手段を提供しているのを見ました。私は他の同様の変更もしたいと思うし、Liquibaseを拡張する考えを好む。
私は他の拡張機能を見てきましたが、既存のステートメントをうまく拡張する方法の例は見つかりません。私は以下を行うことを考えています:CreateTableChange
、CreateTableStatement
およびCreateTableGenerator
コアを拡張するクラスCreateTableChange
,CreateTableStatement
およびCreateTableGenerator
を書き込むカスタム を書くことを考えています。 generateStatements
メソッドをCreateTableChange
に置き換えて、カスタムCreateTableStatement
インスタンスを作成し、generateSql
をCreateTableGenerator
に置き換えてください。
これが既存の変更クラスを拡張する正しい方法かどうかを知りたいと思います。 generateStatements
とgenerateSql
の基本実装を呼び出すことはできませんが、実装をコピーして貼り付けて、既存の拡張の代わりに新しい変更タイプのように見えるようにしなければならないと心配です。