【发布时间】:2020-07-27 13:53:31
【问题描述】:
在使用 Corda Enterprise 4.2 时,我们设法创建了一个
biz-generated-migration....jar 这似乎是一切的先决条件,甚至
使用 H2 数据库时。我们无法使用这个.jar 文件
在执行我们的测试时,即使引用这个全新的.jar
测试设置中的文件,如下所示:
val BIZ_COMPONENT_VERSION="1.0.0"
val DEFAULT_MOCK_NETWORK = MockNetwork(
cordappPackages = listOf(
"package.subpkg-infra.cd.contract",
"package.subpkg-infra.contract",
"package.subpkg-infra.flow",
"package.subpkg-infra.cd.flow",
"package.subpkg-infra.cd.pend.flow",
"package.subpkg-infra.schema",
"package.subpkg-cordapp:biz-generated-migration:$BIZ_COMPONENT_VERSION",
"package.subpkg-cordapp:biz-component-base:$BIZ_COMPONENT_VERSION",
"package.subpkg-cordapp:biz-component-core:$BIZ_COMPONENT_VERSION",
"package.subpkg-cordapp:biz-component-interact:$BIZ_COMPONENT_VERSION"
),
notarySpecs = listOf(MockNetworkNotarySpec(DUMMY_NOTARY_NAME)))
每次测试都失败,抱怨找不到迁移 架构。
我们如何使用这个生成的migration.jar 文件来完成
启用我们的测试?还是这种方法完全被滥用了?
【问题讨论】:
-
您是否已将此 migration.jar 添加到 cordapps 目录?相反,问题可能是生成的migration.jar 保存在哪个文件夹中。同样,一旦您生成了迁移脚本,您是否触发了以下命令来生成 migration.jar.jar cvf /path/to/node/cordapps/biz-generated-migration.jar 迁移
-
嗨,斯内哈。要点是,在执行测试阶段时,我们根本不需要 cordapps 文件夹。我们所有的努力都是以某种反复试验的方式进行的。在 3.X 企业版中,我们可以创建测试而无需使用 cordapps 文件夹。从 4.X 企业版开始,我们需要在项目资源中添加一些 .sql,由 DatabaseMigration 工具生成。它解决了测试阶段,但是随着这个文件被集成到生成的 cordapp 中,我们得到了 h2 模式。
-
为了将生成的 cordapp 切换到任何其他后备数据库,我们需要从该 cordapp 中手动删除 .sql 文件,这将破坏其 SHA256 哈希并迫使我们始终清理生成的数据库在节点启动之前。
-
您能否确认以下几点: 1. 您是否覆盖了 MappedSchema 类的“migrationResourse”=“migration/filename”。 2. 确保正确的 XML,所以这不是 H2 特定的。 3. 你也可以尝试使用下面的 network = MockNetwork(MockNetworkParameters(listOf( findCordapp("com.deqode.contracts"), findCordapp("com.deqode.flows"))) ) 而不是 cordappPackages。 4.能否确认您使用的是Windows
-
你好,斯内哈。 1.我们实际上并没有改变这个设置; 2.所有的JPA映射都是通过注解完成的,我们没有使用任何xml映射; 4.我们同时使用Windows和Linux进行开发/编译/测试; 3. 一旦我们可以尝试您的建议,我们会尽快回复您。
标签: corda