Можно ли создать собственную схему в Corda с открытым исходным кодом - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть один пример шнура приложения, где я хочу использовать Postgresql для двух моих узлов (PartyA и PartyB). Я создал два sql файла для создания как пользователя, так и схемы. Ниже приведен файл sql для PartyA.

**

**CREATE USER "party_a" WITH LOGIN PASSWORD 'my_password';
CREATE SCHEMA "party_a_schema";
GRANT USAGE, CREATE ON SCHEMA "party_a_schema" TO "party_a";
GRANT SELECT, INSERT, UPDATE, DELETE, REFERENCES ON ALL tables IN SCHEMA "party_a_schema" TO "party_a";
ALTER DEFAULT privileges IN SCHEMA "party_a_schema" GRANT SELECT, INSERT, UPDATE, DELETE, REFERENCES ON tables TO "party_a";
GRANT USAGE, SELECT ON ALL sequences IN SCHEMA "party_a_schema" TO "party_a";
ALTER DEFAULT privileges IN SCHEMA "party_a_schema" GRANT USAGE, SELECT ON sequences TO "party_a";
ALTER ROLE "party_a" SET search_path = "party_a_schema";**

**

Ниже приведена конфигурация источника данных

dataSourceProperties {
    dataSource {
        password="admin"
        url="jdbc:postgresql://localhost:5432/postgres"
        user="party_b"
    }
    dataSourceClassName="org.postgresql.ds.PGSimpleDataSource"
}
database {
   transactionIsolationLevel=READ_COMMITTED
   schema="party_b_schema"
   runMigration=true
}

Оба схемы доступны в базе данных Postgre. Я получал ошибку после запуска узла и при дальнейших исследованиях обнаружил, что мне нужно использовать initialiseSchema вместо runMigration , но где я могу указать свою пользовательскую схему?

1 Ответ

0 голосов
/ 30 апреля 2020
  • Согласно this , вы можете указать его в строке URL JDB C. В вашем случае это должно выглядеть так:
    jdbc:postgresql://localhost:5432/postgres?currentSchema=party_b_schema
    
  • На заметку, начиная с Corda 4.4; corda.jar больше не содержит драйвер JDB C для базы данных PostgreSQL, его необходимо загрузить из Inte rnet и поместить файл jar в папку drivers вашего узла.
...