| 
									
										
										
										
											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" | 
					
						
							| 
									
										
										
										
											2024-08-19 19:09:16 +02:00
										 |  |  |         const db = new OsmPoiDatabase("postgresql://user:password@localhost:5444") | 
					
						
							| 
									
										
										
										
											2025-06-05 12:14:23 +02:00
										 |  |  |         const knownDatabases = await db.findSuitableDatabases() | 
					
						
							| 
									
										
										
										
											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" | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         await db.createNew(targetName) | 
					
						
							| 
									
										
										
										
											2024-08-19 19:09:16 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | new CreateNewDatabase().run() |