MapComplete/scripts/osm2pgsql/createNewDatabase.ts

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()