forked from canada-ca/tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
43 lines (38 loc) · 1.09 KB
/
index.js
File metadata and controls
43 lines (38 loc) · 1.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
const { config } = require('dotenv-safe')
const { ensure } = require('arango-tools')
const { Database } = require('arangojs')
config()
const { DB_DESCRIPTION = './database.json', DB_NAME, ROOT_PASS, DB_USER, DB_PASS, DB_URL } = process.env
const schema = require(DB_DESCRIPTION)
;(async () => {
const systemDatabase = new Database({ url: DB_URL, databaseName: '_system' })
await systemDatabase.login('root', ROOT_PASS)
const databases = await systemDatabase.listDatabases()
if (!databases.includes(DB_NAME)) {
console.log(`Tracker database ${DB_NAME} does not exist. Creating it.`)
try {
await systemDatabase.createDatabase(DB_NAME, {
users: [
{
username: DB_USER,
passwd: DB_PASS,
active: true,
},
],
})
} catch (e) {
console.error(`Failed to create database ${DB_NAME}: ${e.message}`)
process.exit(1)
}
}
await ensure({
variables: {
rootPassword: ROOT_PASS,
dbname: DB_NAME,
username: DB_USER,
password: DB_PASS,
url: DB_URL,
},
schema,
})
})()