鉴于在我们的环境中不允许应用程序用户(运行时)创建数据库结构(表,视图等),那么在Node启动之前是否有任何脚本可以做到这一点?
PS。这是一个Oracle数据库。
答案 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的服务。这些是单例类,在节点启动时加载一次。在其构造函数中,您可以从jdbcsession
或servicehub
读取您的sql脚本并使用刚得到的jdbcsession执行对appservicehub
的访问。
将此服务创建为一个单独的模块,然后在需要此功能的节点中将服务jar作为cordaApp注入。