import Script from "../Script" import { OsmPoiDatabase } from "./osmPoiDatabase" class CreateNewDatabase extends Script { constructor() { super( "Creates a new version of the database. Usage: `createNewDatabase -- YYYY-MM-DD` which will create database `osm-poi.YYYY-MM-DD`" ) } async main(args: string[]): Promise { const targetName = args[0] const overwrite = args[1] === "--overwrite" console.log("Trying to connect to the database...") const db = new OsmPoiDatabase("postgresql://user:password@localhost:5444") console.log("Connected! Searching suitable databases...") const knownDatabases = await db.findSuitableDatabases() console.log("Known databases are", knownDatabases.join(", ")) if (knownDatabases.indexOf(OsmPoiDatabase.databaseNameFor(targetName)) > 0) { if (overwrite) { await db.deleteDatabase(targetName) } else { throw "ERROR: the target database " + targetName + " already exists" } } console.log("Creating the database", targetName) await db.createNew(targetName) } } new CreateNewDatabase().run()