Compare commits
1
Commits
f2c2f7f99f
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7da13c895d |
@@ -1,21 +1,35 @@
|
||||
import { Database } from 'arangojs'
|
||||
|
||||
const ARANGODB_URL = process.env.ARANGODB_URL || process.env.ARANGODB_INTERNAL_URL || 'http://localhost:8529'
|
||||
const ARANGODB_DATABASE = process.env.ARANGODB_DATABASE || 'optovia_geo'
|
||||
const ARANGODB_DATABASE = process.env.ARANGODB_DATABASE || 'optovia_maps'
|
||||
const ARANGODB_PASSWORD = process.env.ARANGODB_PASSWORD || ''
|
||||
|
||||
let _db: Database | null = null
|
||||
|
||||
function database(databaseName: string): Database {
|
||||
const url = ARANGODB_URL.startsWith('http') ? ARANGODB_URL : `http://${ARANGODB_URL}`
|
||||
return new Database({ url, databaseName, auth: { username: 'root', password: ARANGODB_PASSWORD } })
|
||||
}
|
||||
|
||||
export function getDb(): Database {
|
||||
if (!_db) {
|
||||
const url = ARANGODB_URL.startsWith('http') ? ARANGODB_URL : `http://${ARANGODB_URL}`
|
||||
_db = new Database({ url, databaseName: ARANGODB_DATABASE, auth: { username: 'root', password: ARANGODB_PASSWORD } })
|
||||
console.log(`Connected to ArangoDB: ${url}/${ARANGODB_DATABASE}`)
|
||||
_db = database(ARANGODB_DATABASE)
|
||||
console.log(`Connected to ArangoDB: ${ARANGODB_URL}/${ARANGODB_DATABASE}`)
|
||||
}
|
||||
return _db
|
||||
}
|
||||
|
||||
async function ensureDatabase(): Promise<void> {
|
||||
const system = database('_system')
|
||||
const databases = await system.listDatabases()
|
||||
if (!databases.includes(ARANGODB_DATABASE)) {
|
||||
await system.createDatabase(ARANGODB_DATABASE)
|
||||
console.log(`Created ArangoDB database: ${ARANGODB_DATABASE}`)
|
||||
}
|
||||
}
|
||||
|
||||
export async function ensureGraph(): Promise<void> {
|
||||
await ensureDatabase()
|
||||
const db = getDb()
|
||||
|
||||
const nodes = db.collection('nodes')
|
||||
|
||||
Reference in New Issue
Block a user