Corda-1297 Column Nullability - dropping index before altering column (#932)

* Altering column for SQL Server requires dropping index in which it is a part of and the recreating it
(to avoid Liquibase error: The index 'xxx' is dependent on column 'yyy')
* Remove duplicated addNotNullConstraint causing error on Oracle dbs.
This commit is contained in:
szymonsztuka 2018-06-11 19:21:33 +01:00 committed by GitHub
parent db00190d71
commit c3ff42129c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 43 additions and 8 deletions

View File

@ -6,10 +6,22 @@
logicalFilePath="migration/node-services.changelog-init.xml">
<changeSet id="1525793504" author="R3.Corda">
<!-- drop indexes before adding not null constraints to the underlying table, recreating index immediately after -->
<dropIndex indexName="ccy_code_idx" tableName="contract_cash_states"/>
<addNotNullConstraint tableName="contract_cash_states" columnName="ccy_code" columnDataType="NVARCHAR(3)"/>
<createIndex indexName="ccy_code_idx" tableName="contract_cash_states">
<column name="ccy_code"/>
</createIndex>
<addNotNullConstraint tableName="contract_cash_states" columnName="issuer_key_hash"
columnDataType="NVARCHAR(130)"/>
<addNotNullConstraint tableName="contract_cash_states" columnName="issuer_ref" columnDataType="varbinary(512)"/>
<!-- drop indexes before adding not null constraints to the underlying table, recreating index immediately after -->
<dropIndex indexName="pennies_idx" tableName="contract_cash_states"/>
<addNotNullConstraint tableName="contract_cash_states" columnName="pennies" columnDataType="BIGINT"/>
<createIndex indexName="pennies_idx" tableName="contract_cash_states">
<column name="pennies"/>
</createIndex>
</changeSet>
</databaseChangeLog>

View File

@ -11,13 +11,26 @@
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">
<changeSet author="R3.Corda" id="1525962920">
<!-- drop indexes before adding not null constraints to the underlying table, recreating index immediately after -->
<dropIndex tableName="cp_states" indexName="ccy_code_index"/>
<addNotNullConstraint tableName="cp_states" columnName="ccy_code" columnDataType="NVARCHAR(3)"/>
<createIndex indexName="ccy_code_index" tableName="cp_states">
<column name="ccy_code"/>
</createIndex>
<dropIndex tableName="cp_states" indexName="face_value_index"/>
<addNotNullConstraint tableName="cp_states" columnName="face_value" columnDataType="BIGINT"/>
<createIndex indexName="face_value_index" tableName="cp_states">
<column name="face_value"/>
</createIndex>
<addNotNullConstraint tableName="cp_states" columnName="face_value_issuer_key_hash" columnDataType="NVARCHAR(130)"/>
<addNotNullConstraint tableName="cp_states" columnName="face_value_issuer_ref" columnDataType="varbinary(512)"/>
<addNotNullConstraint tableName="cp_states" columnName="issuance_key_hash" columnDataType="NVARCHAR(130)"/>
<addNotNullConstraint tableName="cp_states" columnName="issuance_ref" columnDataType="varbinary(255)"/>
<dropIndex tableName="cp_states" indexName="maturity_index"/>
<addNotNullConstraint tableName="cp_states" columnName="maturity_instant" columnDataType="timestamp"/>
<createIndex indexName="maturity_index" tableName="cp_states">
<column name="maturity_instant"/>
</createIndex>
<addNotNullConstraint tableName="cp_states" columnName="owner_key_hash" columnDataType="NVARCHAR(130)"/>
</changeSet>

View File

@ -7,15 +7,27 @@
<!--this is needed because pre-v3 states are no longer supported-->
<changeSet author="R3.Corda" id="nullability">
<addNotNullConstraint tableName="vault_fungible_states" columnName="quantity" columnDataType="BIGINT"/>
<addNotNullConstraint tableName="vault_fungible_states" columnName="quantity" columnDataType="BIGINT"/>
<addNotNullConstraint tableName="vault_states" columnName="contract_state_class_name" columnDataType="NVARCHAR(255)"/>
<addNotNullConstraint tableName="vault_states" columnName="notary_name" columnDataType="NVARCHAR(255)"/>
<addNotNullConstraint tableName="vault_states" columnName="recorded_timestamp" columnDataType="timestamp"/>
<!-- drop indexes before adding not null constraints to the underlying table, recreating index immediately after -->
<dropIndex indexName="state_status_idx" tableName="vault_states"/>
<dropIndex indexName="lock_id_idx" tableName="vault_states"/>
<addNotNullConstraint tableName="vault_states" columnName="state_status" columnDataType="INT"/>
<createIndex indexName="state_status_idx" tableName="vault_states">
<column name="state_status"/>
</createIndex>
<createIndex indexName="lock_id_idx" tableName="vault_states">
<column name="lock_id"/>
<column name="state_status"/>
</createIndex>
<dropIndex indexName="transaction_id_index" tableName="vault_transaction_notes"/>
<addNotNullConstraint tableName="vault_transaction_notes" columnName="note" columnDataType="NVARCHAR(255)"/>
<addNotNullConstraint tableName="vault_transaction_notes" columnName="transaction_id" columnDataType="NVARCHAR(64)"/>
<createIndex indexName="transaction_id_index" tableName="vault_transaction_notes">
<column name="transaction_id"/>
</createIndex>
</changeSet>
</databaseChangeLog>
</databaseChangeLog>

View File

@ -54,7 +54,6 @@
<changeSet id="nullability" author="R3.Corda">
<addNotNullConstraint tableName="dummy_linear_states" columnName="linear_boolean" columnDataType="BOOLEAN"/>
<addNotNullConstraint tableName="dummy_linear_states" columnName="linear_number" columnDataType="BIGINT"/>
<addNotNullConstraint tableName="dummy_linear_states" columnName="linear_string" columnDataType="NVARCHAR(255)"/>
<addNotNullConstraint tableName="dummy_linear_states" columnName="linear_timestamp" columnDataType="TIMESTAMP"/>
</changeSet>
</databaseChangeLog>

View File

@ -52,9 +52,8 @@
</changeSet>
<changeSet id="nullability" author="R3.Corda">
<addNotNullConstraint tableName="dummy_linear_states" columnName="linear_boolean" columnDataType="BOOLEAN"/>
<addNotNullConstraint tableName="dummy_linear_states" columnName="linear_number" columnDataType="BIGINT"/>
<addNotNullConstraint tableName="dummy_linear_states" columnName="linear_string" columnDataType="NVARCHAR(255)"/>
<addNotNullConstraint tableName="dummy_linear_states" columnName="linear_timestamp" columnDataType="TIMESTAMP"/>
<addNotNullConstraint tableName="dummy_linear_states_v2" columnName="linear_boolean" columnDataType="BOOLEAN"/>
<addNotNullConstraint tableName="dummy_linear_states_v2" columnName="linear_number" columnDataType="BIGINT"/>
<addNotNullConstraint tableName="dummy_linear_states_v2" columnName="linear_timestamp" columnDataType="TIMESTAMP"/>
</changeSet>
</databaseChangeLog>