Corda OS 4.4 在 Cordapp 部署之间迁移数据

Corda OS 4.4 Migrating Data between Cordapp deployments

我有一个项目,从开发到预生产再到生产环境,我需要多次部署我的 corda 节点。这些环境中的每一个都有自己的数据存储在节点上,但当然这些数据必须由管理员手动重新输入。交付指日可待,我们现在正试图弄清楚如何从本质上创造一些方法来让我们做 CD 类型的情况。也就是说,我们想为 cordapps 提供一些更新,但在数据正在使用的“实时”情况下。

我想知道是否有数据迁移来促进这些更新?在这些部署之间不太可能有 corda 版本更新,但可能会有架构和状态更改等。

我可能遗漏了一种情况,但即使是转储数据库然后 运行 模式脚本或其他东西然后导入数据库这样的解决方案也是可行的。

我们 运行 在 Corda OS 4.4 上使用 H2 数据库。

编辑:如果可以在非向后兼容的架构更改(例如删除数据)的情况下如何进行的情况下给出答案,我们将不胜感激。

Manish 已经在评论中对此进行了分解,我想说的是只看一下数据库的样子,并确保了解模式迁移。

此外,请注意您有一个参数应该添加到您的 cordapps 以进行模式迁移

    nodeDefaults {
        projectCordapp {
            deploy = false
        }

        cordapp project(':contracts')
        cordapp project(':workflows')
        runSchemaMigration = true

        rpcUsers = [[user: "user1", "password": "test", "permissions": ["ALL"]]]
    }

来源:https://github.com/corda/samples-java/blob/master/Features/postgres-cordapp/build.gradle#L99-L109

模式迁移链接:

数据库表上的链接: