创建数据库结构的脚本

时间:2018-10-22 15:47:35

标签: oracle corda

鉴于在我们的环境中不允许应用程序用户(运行时)创建数据库结构(表,视图等),那么在Node启动之前是否有任何脚本可以做到这一点?

PS。这是一个Oracle数据库。

2 个答案:

答案 0 :(得分:0)

不确定我是否正确理解,但请检查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)
  })}

希望有帮助。

答案 1 :(得分:0)

好吧,你可以做到。使用CordaService。创建名为DBStartup Service的服务。这些是单例类,在节点启动时加载一次。在其构造函数中,您可以从jdbcsessionservicehub读取您的sql脚本并使用刚得到的jdbcsession执行对appservicehub的访问。

将此服务创建为一个单独的模块,然后在需要此功能的节点中将服务jar作为cordaApp注入。