forked from MapComplete/MapComplete
31 lines
1.2 KiB
TypeScript
31 lines
1.2 KiB
TypeScript
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<void> {
|
|
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()
|