Скрипт для создания структуры базы данных - PullRequest
0 голосов
/ 22 октября 2018

Учитывая, что в нашей среде не допускается создание структур базы данных (таблиц, представлений и т. Д.) Пользователем приложения (среда выполнения), есть ли какой-либо сценарий, позволяющий сделать это до запуска узла?

PS,Это БД Oracle.

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Ну, вы можете сделать это.Используйте CordaService.Создайте службу под названием DBStartup Service.Это одноэлементные классы, которые загружаются один раз во время запуска узла.В его конструкторе вы можете получить доступ к jdbcsession из servicehub или appservicehub, прочитать свой сценарий sql и выполнить с использованием только что полученной вами jdbcsession.

Создайте этот сервис как отдельный модуль ивставьте jar службы как cordaApp в узлы, для которых вы хотите эту функцию.

0 голосов
/ 22 октября 2018

Не уверен, правильно ли я понял, но проверьте knex.js .

После установки knex.js, (npm install knex.js --save) вам нужно сделатьсоединение:

var conn = knex({
  client: 'oracledb',
  connection: {
    host: your-host,
    user: your-user,
    password: your-password,
    database: your-db,
  }
});

Пример создания примера пользовательской таблицы:

function (knex, Promise) {
  return knex.schema.createTable('users', function (t) {
    t.bigincrements('id').primary()
    t.string('email').notNullable()
    t.string('password', 64)
    t.integer('state').notNullable().defaultTo(0)
    t.timestamp('lastlogin').notNullable().defaultTo(knex.fn.now())
    t.timestamp('regdate').notNullable().defaultTo(knex.fn.now())
    t.biginteger('sevdeskId')
    t.index('sevdeskId', 'sevdeskId')
    t.string('invoiceEmail', 100)
    t.string('firstName')
    t.string('lastName')
    t.string('companyName')
    t.string('phoneNumber', 16)
    t.boolean('newsletterSubscription').defaultTo(false)
  })}

Надеюсь, это поможет.

...