Добавлен дополнительный столбец xyz в CashSchemaV1. Я могу запустить узел с H2 db, но при использовании PostgreSQL выдает следующую ошибку:
[ERROR] 14:52:11+0530 [main] internal.NodeStartupLogging.invoke - Exception during node startup: Incompatible schema change detected. Please run the node with database.initialiseSchema=true. Reason: Schema-validation: missing column [xyz] in table [contract_cash_states]
Подписано https://docs.corda.r3.com/database-management.html#database-management-scripts
Добавлен столбец xyz в https://github.com/corda/corda/blob/master/finance/workflows/src/main/resources/migration/cash.changelog-init.xml
<column name="pennies" type="BIGINT"/>
<column name="xyz" type="NVARCHAR(130)"/>
затем ретроспективно добавил сценарии миграции базы данных в существующий CorDapp.
После этого попытался запустить узел, но получил следующую ошибку:
[ERROR] 14:52:11+0530 [main] internal.NodeStartupLogging.invoke - Exception during node startup: Incompatible schema change detected. Please run the node with database.initialiseSchema=true. Reason: Schema-validation: missing column [xyz] in table [contract_cash_states]
CashSchemaV1.kt https://github.com/corda/corda/blob/master/finance/contracts/src/main/kotlin/net/corda/finance/schemas/CashSchemaV1.kt
@Type(type = "corda-wrapper-binary")
var issuerRef: ByteArray,
@Column (name = "xyz")
var xyz: String
) : PersistentState()
}
Сценарий миграции сгенерирован cash-schema-v1.changelog-master.sql
--liquibase formatted sql
--changeset R3.Corda.Generated:initial_schema_for_CashSchemaV1
create table contract_cash_states (
output_index int4 not null,
transaction_id varchar(64) not null,
ccy_code varchar(3) not null,
issuer_key_hash varchar(130) not null,
issuer_ref bytea not null,
owner_name varchar(255),
pennies int8 not null,
xyz varchar(255),
primary key (output_index, transaction_id)
);
create index ccy_code_idx on contract_cash_states (ccy_code);
create index pennies_idx on contract_cash_states (pennies);
Схема должна быть создана со всеми столбцами, указанными в CashSchemaV1