使用PostgreSQL而不是H2作为Corda节点的数据库

时间:2018-01-24 10:14:00

标签: corda

我想使用PostgreSQL而不是H2作为我的节点的数据库。可以使用PostgreSQL用于Corda节点吗?如何配置我的节点以使用PostgreSQL数据库?

3 个答案:

答案 0 :(得分:2)

使用PostgreSQL JDBC Driver 42.1.4,Corda 2和Corda 3都允许使用PostgreSQL 9.6。请注意,这是一个实验性社区贡献,目前尚未经过测试。

以下是PostgreSQL的示例节点配置块:

dataSourceProperties = {
    dataSourceClassName = "org.postgresql.ds.PGSimpleDataSource"
    dataSource.url = "jdbc:postgresql://[HOST]:[PORT]/postgres"
    dataSource.user = [USER]
    dataSource.password = [PASSWORD]
}

database = {
    transactionIsolationLevel = READ_COMMITTED
    schema = [SCHEMA]
}

您需要将此块添加到节点文件夹根目录下的节点node.conf文件中。

请注意:

  • database.schema属性是可选的。它代表数据库的命名空间
  • database.schema的值未包含在双引号中,Postgres始终将其视为小写值(例如AliceCorp变为alicecorp

答案 1 :(得分:1)

请指定您正在处理的版本,据我了解,如果您从master构建Corda v3.0,则可以执行此操作。 您实际上可以指定要在Corda中加载的Jars和您的自定义jdbc连接字符串,请参阅有关节点配置的更新文档: fseek()

答案 2 :(得分:0)

您可以使用extraConfig = [...]块将build.gradle脚本中的Postgresql DB属性添加到您的节点配置中,如下所示。

node {

    ...

    extraConfig = [
        dataSourceProperties: [
                dataSourceClassName : "org.postgresql.ds.PGSimpleDataSource",
                'dataSource.url' : "jdbc:postgresql://localhost:5432/nodedb",
                'dataSource.user' : "postgres",
                'dataSource.password' : "pa$$w0rd"
        ],
        database: [
                transactionIsolationLevel : "READ_COMMITTED"
        ]
    ]
}