Compare commits

...
1 Commits
Author SHA1 Message Date
Ruslan Bakiev 7da13c895d Provision configured Geo database
Build and deploy Docker image / build (push) Successful in 31s
2026-08-20 17:33:17 +07:00
+18 -4
View File
@@ -1,21 +1,35 @@
import { Database } from 'arangojs' import { Database } from 'arangojs'
const ARANGODB_URL = process.env.ARANGODB_URL || process.env.ARANGODB_INTERNAL_URL || 'http://localhost:8529' 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 || '' const ARANGODB_PASSWORD = process.env.ARANGODB_PASSWORD || ''
let _db: Database | null = null 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 { export function getDb(): Database {
if (!_db) { if (!_db) {
const url = ARANGODB_URL.startsWith('http') ? ARANGODB_URL : `http://${ARANGODB_URL}` _db = database(ARANGODB_DATABASE)
_db = new Database({ url, databaseName: ARANGODB_DATABASE, auth: { username: 'root', password: ARANGODB_PASSWORD } }) console.log(`Connected to ArangoDB: ${ARANGODB_URL}/${ARANGODB_DATABASE}`)
console.log(`Connected to ArangoDB: ${url}/${ARANGODB_DATABASE}`)
} }
return _db 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> { export async function ensureGraph(): Promise<void> {
await ensureDatabase()
const db = getDb() const db = getDb()
const nodes = db.collection('nodes') const nodes = db.collection('nodes')