diff --git a/liquibase-dialect/pom.xml b/liquibase-dialect/pom.xml index 2823182..78c4e13 100644 --- a/liquibase-dialect/pom.xml +++ b/liquibase-dialect/pom.xml @@ -12,7 +12,7 @@ tech.ydb.dialects liquibase-ydb-dialect - 0.9.1 + 0.9.2 Liquibase YDB Dialect Support Liquibase YDB Dialect diff --git a/liquibase-dialect/src/main/java/tech/ydb/liquibase/sqlgenerator/CreateIndexGeneratorYdb.java b/liquibase-dialect/src/main/java/tech/ydb/liquibase/sqlgenerator/CreateIndexGeneratorYdb.java index f8f2258..53de3bb 100644 --- a/liquibase-dialect/src/main/java/tech/ydb/liquibase/sqlgenerator/CreateIndexGeneratorYdb.java +++ b/liquibase-dialect/src/main/java/tech/ydb/liquibase/sqlgenerator/CreateIndexGeneratorYdb.java @@ -104,7 +104,7 @@ public ValidationErrors validate( ValidationErrors errors = super.validate(createIndexStatement, database, sqlGeneratorChain); errors.checkRequiredField("name", createIndexStatement.getIndexName()); - if (createIndexStatement.isUnique()) { + if (createIndexStatement.isUnique() != null && createIndexStatement.isUnique()) { errors.addError(DOES_NOT_SUPPORT_UNIQUE_CONSTRAINT + "[table name = " + createIndexStatement.getTableName() + ", " + "index name = " + createIndexStatement.getIndexName() + "]"); @@ -116,10 +116,10 @@ public ValidationErrors validate( badColumnStrPointer(createIndexStatement, column)); } - if (column.getComputed() != null && column.getComputed()) { - errors.addError("YDB doesn't support computed column in index! " + - badColumnStrPointer(createIndexStatement, column)); - } + if (column.getComputed() != null && column.getComputed()) { + errors.addError("YDB doesn't support computed column in index! " + + badColumnStrPointer(createIndexStatement, column)); + } } return errors; diff --git a/liquibase-dialect/src/main/java/tech/ydb/liquibase/type/DateTypeYdb.java b/liquibase-dialect/src/main/java/tech/ydb/liquibase/type/DateTypeYdb.java new file mode 100644 index 0000000..b97823c --- /dev/null +++ b/liquibase-dialect/src/main/java/tech/ydb/liquibase/type/DateTypeYdb.java @@ -0,0 +1,23 @@ +package tech.ydb.liquibase.type; + +import liquibase.change.core.LoadDataChange; +import liquibase.datatype.DataTypeInfo; +import liquibase.datatype.LiquibaseDataType; + +/** + * @author Kirill Kurdyukov + */ +@DataTypeInfo( + name = "Date", + minParameters = 0, + maxParameters = 0, + aliases = {"java.sql.Types.DATE", "smalldatetime"}, + priority = LiquibaseDataType.PRIORITY_DATABASE +) +public class DateTypeYdb extends BaseTypeYdb { + + @Override + public LoadDataChange.LOAD_DATA_TYPE getLoadTypeName() { + return LoadDataChange.LOAD_DATA_TYPE.DATE; + } +} \ No newline at end of file diff --git a/liquibase-dialect/src/main/resources/META-INF/services/liquibase.datatype.LiquibaseDataType b/liquibase-dialect/src/main/resources/META-INF/services/liquibase.datatype.LiquibaseDataType index 07bd515..71dd6dd 100644 --- a/liquibase-dialect/src/main/resources/META-INF/services/liquibase.datatype.LiquibaseDataType +++ b/liquibase-dialect/src/main/resources/META-INF/services/liquibase.datatype.LiquibaseDataType @@ -1,5 +1,6 @@ tech.ydb.liquibase.type.BoolTypeYdb tech.ydb.liquibase.type.BytesTypeYdb +tech.ydb.liquibase.type.DateTypeYdb tech.ydb.liquibase.type.DecimalTypeYdb tech.ydb.liquibase.type.DoubleTypeYdb tech.ydb.liquibase.type.FloatTypeYdb diff --git a/liquibase-dialect/src/test/java/tech/ydb/liquibase/YdbDatabaseLiquibaseAllTypesTableTest.java b/liquibase-dialect/src/test/java/tech/ydb/liquibase/YdbDatabaseLiquibaseAllTypesTableTest.java index 3ee965d..b23ab64 100644 --- a/liquibase-dialect/src/test/java/tech/ydb/liquibase/YdbDatabaseLiquibaseAllTypesTableTest.java +++ b/liquibase-dialect/src/test/java/tech/ydb/liquibase/YdbDatabaseLiquibaseAllTypesTableTest.java @@ -23,7 +23,7 @@ void changelogXmlMigrationAllTypesTableTest() throws SQLException, LiquibaseExce "float_column FLOAT, double_column DOUBLE, " + "decimal_column DECIMAL(22,9), text_column TEXT, " + "binary_column BYTES, json_column JSON, " + - "jsondocument_column JSONDOCUMENT, date_column date, " + + "jsondocument_column JSONDOCUMENT, date_column DATE, " + "datetime_column DATETIME, timestamp_column TIMESTAMP, " + "interval_column INTERVAL, PRIMARY KEY (id) );" ) diff --git a/liquibase-dialect/src/test/java/tech/ydb/liquibase/YdbDatabaseLiquibaseChangeLogStateTest.java b/liquibase-dialect/src/test/java/tech/ydb/liquibase/YdbDatabaseLiquibaseChangeLogStateTest.java index f4df388..e92491b 100644 --- a/liquibase-dialect/src/test/java/tech/ydb/liquibase/YdbDatabaseLiquibaseChangeLogStateTest.java +++ b/liquibase-dialect/src/test/java/tech/ydb/liquibase/YdbDatabaseLiquibaseChangeLogStateTest.java @@ -57,7 +57,7 @@ private static void changeLogStep1() throws SQLException, LiquibaseException { outputMigration.contains( "-- Changeset changelogs/migration/series.xml::series::kurdyukov-kir\n" + "-- Table series.\n" + - "CREATE TABLE series (series_id INT64, title TEXT, series_info TEXT, release_date date, PRIMARY KEY (series_id) );\n" + + "CREATE TABLE series (series_id INT64, title TEXT, series_info TEXT, release_date DATE, PRIMARY KEY (series_id) );\n" + "\n" + "ALTER TABLE series ADD INDEX series_index GLOBAL ON (title);\n" + "\n" +