mirror of
				https://github.com/9technologygroup/patchmon.net.git
				synced 2025-10-31 12:03:47 +00:00 
			
		
		
		
	- Fixes P3009 error when upgrading from 1.2.7
- Reconciles 'add_user_sessions' to '20251005000000_add_user_sessions' - Prevents duplicate migration attempts - Handles fresh installs gracefully"
This commit is contained in:
		
							
								
								
									
										67
									
								
								backend/prisma/reconcile-migrations.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								backend/prisma/reconcile-migrations.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,67 @@ | ||||
| const { PrismaClient } = require("@prisma/client"); | ||||
|  | ||||
| async function reconcileMigrations() { | ||||
| 	const prisma = new PrismaClient(); | ||||
|  | ||||
| 	try { | ||||
| 		console.log( | ||||
| 			"[Migration Reconciliation] Checking for migration name conflicts...", | ||||
| 		); | ||||
|  | ||||
| 		// Check if the old migration name exists | ||||
| 		const oldMigration = await prisma.$queryRawUnsafe( | ||||
| 			"SELECT migration_name FROM _prisma_migrations WHERE migration_name = 'add_user_sessions'", | ||||
| 		); | ||||
|  | ||||
| 		if (oldMigration && oldMigration.length > 0) { | ||||
| 			console.log( | ||||
| 				'[Migration Reconciliation] Found old migration name "add_user_sessions"', | ||||
| 			); | ||||
| 			console.log( | ||||
| 				'[Migration Reconciliation] Updating to "20251005000000_add_user_sessions"...', | ||||
| 			); | ||||
|  | ||||
| 			// Update the migration name to the new timestamped version | ||||
| 			await prisma.$executeRawUnsafe(` | ||||
|         UPDATE _prisma_migrations  | ||||
|         SET migration_name = '20251005000000_add_user_sessions' | ||||
|         WHERE migration_name = 'add_user_sessions' | ||||
|       `); | ||||
|  | ||||
| 			console.log( | ||||
| 				"[Migration Reconciliation] ✅ Migration name updated successfully", | ||||
| 			); | ||||
| 		} else { | ||||
| 			console.log( | ||||
| 				"[Migration Reconciliation] No migration reconciliation needed", | ||||
| 			); | ||||
| 		} | ||||
| 	} catch (error) { | ||||
| 		// If _prisma_migrations table doesn't exist yet, that's okay (fresh install) | ||||
| 		if (error.code === "42P01") { | ||||
| 			console.log( | ||||
| 				"[Migration Reconciliation] Fresh database detected, skipping reconciliation", | ||||
| 			); | ||||
| 		} else { | ||||
| 			console.error( | ||||
| 				"[Migration Reconciliation] Error during migration reconciliation:", | ||||
| 				error.message, | ||||
| 			); | ||||
| 			throw error; | ||||
| 		} | ||||
| 	} finally { | ||||
| 		await prisma.$disconnect(); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // Run if called directly | ||||
| if (require.main === module) { | ||||
| 	reconcileMigrations() | ||||
| 		.then(() => process.exit(0)) | ||||
| 		.catch((error) => { | ||||
| 			console.error(error); | ||||
| 			process.exit(1); | ||||
| 		}); | ||||
| } | ||||
|  | ||||
| module.exports = reconcileMigrations; | ||||
		Reference in New Issue
	
	Block a user