MapComplete/scripts/osm2pgsql/createNewDatabase.ts

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

32 lines
1.2 KiB
TypeScript
Raw Normal View History

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