我正在使用Corda Enterprise 3.1,并尝试使用提供的数据库迁移工具将文件库从H2迁移到Oracle 12c。我使用我知道可以从IntelliJ连接的值在node.conf
配置中进行了更改。驱动程序是Oracle SQL Developer附带的Oracle ojdbc8.jar
。我在节点上安装了Yo! CorDapp。
但是,尝试启动节点时出现以下错误:
[ERROR] 2018-08-07T22:43:32,666Z [main] errors.errorAndExit-失败 创建数据源。请检查是否正确的JDBC驱动程序是 安装在以下文件夹之一中:-/ apps / team / drivers / jdbc
原因 net.corda.nodeapi.internal.persistence.MissingMigrationException:否 为架构定义的迁移:net.corda.yo.YoState $ YoSchema v1
net.corda.nodeapi.internal.persistence.MissingMigrationException:否 为模式定义的迁移:net.corda.yo.YoState $ YoSchema v1,位于
net.corda.nodeapi.internal.persistence.SchemaMigration.doRunMigration(SchemaMigration.kt:90) ...
答案 0 :(得分:2)
在Corda Enterprise节点上安装针对Corda Open-Source开发的CorDapp时,您需要为每个CorDapp的MappedSchema
提供一个Liquibase迁移脚本。
步骤如下:
cordapps
文件夹中)java -jar corda-tools-database-manager-3.1.jar --base-directory /path/to/node --create-migration-sql-for-cordapp com.example.MyMappedSchema
my-mapped-schema.changelog-master.sql
的文件夹中生成名为migration
的文件MappedSchema
生成一个SQL文件migration
文件夹中创建的文件,以确保它是正确的
migration
文件夹的JAR(通常将其命名为originalCorDappName-migration.jar
),并将此JAR与CorDapp一起部署(例如,在节点基本目录中运行以下命令:{{1 }}。您可以在此处了解有关此过程的更多信息:http://docs.corda.r3.com/database-management.html#node-administrator-installing-a-cordapp-targeted-at-the-open-source-node。