From 84a2ff5f54f70401bb80a43abc30b722b8c04d04 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Thu, 5 Jun 2025 12:14:23 +0200 Subject: [PATCH] Scripts: force overwrite the database --- .forgejo/workflows/update_database.yml | 2 +- scripts/osm2pgsql/createNewDatabase.ts | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/update_database.yml b/.forgejo/workflows/update_database.yml index 39ed86092..b16b80619 100644 --- a/.forgejo/workflows/update_database.yml +++ b/.forgejo/workflows/update_database.yml @@ -29,7 +29,7 @@ jobs: DATE=$(echo $TIMESTAMP | sed "s/T.*//") echo $DATE # Create a new database in postgres - npm run create:database -- -- $DATE + npm run create:database -- -- $DATE --overwrite echo "Seeding database '$DATE'" osm2pgsql -O flex -S build_db.lua -s --flat-nodes=import-help-file -d postgresql://user:password@localhost:5444/osm-poi.${DATE} /data/planet-latest.osm.pbf npm run delete:database:old diff --git a/scripts/osm2pgsql/createNewDatabase.ts b/scripts/osm2pgsql/createNewDatabase.ts index b22aa80ef..87ee16748 100644 --- a/scripts/osm2pgsql/createNewDatabase.ts +++ b/scripts/osm2pgsql/createNewDatabase.ts @@ -9,8 +9,18 @@ class CreateNewDatabase extends Script { } async main(args: string[]): Promise { + const targetName = args[0] + const overwrite = args[1] === "--overwrite" const db = new OsmPoiDatabase("postgresql://user:password@localhost:5444") - await db.createNew(args[0]) + const knownDatabases = await db.findSuitableDatabases() + if (knownDatabases.indexOf(targetName) > 0) { + if (overwrite) { + await db.deleteDatabase(targetName) + } else { + throw "ERROR: the target database " + targetName + " already exists" + } + } + await db.createNew(targetName) } }