fix(seed): prevent cascade-deletion of tenant_symbols on container restart
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 12m23s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 12m23s
This commit is contained in:
@@ -231,6 +231,65 @@ async function migrate() {
|
||||
console.log(' tenant_symbols table skipped:', e.message)
|
||||
}
|
||||
|
||||
// ─── Step 13: Create symbol_templates table ───
|
||||
console.log(' [13] Creating symbol_templates table...')
|
||||
try {
|
||||
await prisma.$executeRawUnsafe(`
|
||||
CREATE TABLE IF NOT EXISTS symbol_templates (
|
||||
id TEXT PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
"fileKey" TEXT NOT NULL,
|
||||
"originalFilename" TEXT NOT NULL,
|
||||
"displayName" TEXT,
|
||||
"categoryName" TEXT,
|
||||
"svgPath" TEXT,
|
||||
"metadata" JSONB NOT NULL DEFAULT '{}',
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE("fileKey")
|
||||
)
|
||||
`)
|
||||
console.log(' symbol_templates table created (or already exists)')
|
||||
} catch (e) {
|
||||
console.log(' symbol_templates table skipped:', e.message)
|
||||
}
|
||||
|
||||
// ─── Step 14: Create tenant_categories table ───
|
||||
console.log(' [14] Creating tenant_categories table...')
|
||||
try {
|
||||
await prisma.$executeRawUnsafe(`
|
||||
CREATE TABLE IF NOT EXISTS tenant_categories (
|
||||
id TEXT PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
"name" TEXT NOT NULL,
|
||||
"description" TEXT,
|
||||
"sortOrder" INTEGER NOT NULL DEFAULT 0,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"tenantId" TEXT NOT NULL REFERENCES tenants(id) ON DELETE CASCADE
|
||||
)
|
||||
`)
|
||||
console.log(' tenant_categories table created (or already exists)')
|
||||
} catch (e) {
|
||||
console.log(' tenant_categories table skipped:', e.message)
|
||||
}
|
||||
|
||||
// ─── Step 15: Extend tenant_symbols with Phase 1 columns ───
|
||||
console.log(' [15] Extending tenant_symbols with Phase 1 columns...')
|
||||
const tenantSymbolColumns = [
|
||||
`ALTER TABLE tenant_symbols ADD COLUMN IF NOT EXISTS "name" TEXT`,
|
||||
`ALTER TABLE tenant_symbols ADD COLUMN IF NOT EXISTS "svgPath" TEXT`,
|
||||
`ALTER TABLE tenant_symbols ADD COLUMN IF NOT EXISTS "isUploaded" BOOLEAN NOT NULL DEFAULT false`,
|
||||
`ALTER TABLE tenant_symbols ADD COLUMN IF NOT EXISTS "categoryId" TEXT REFERENCES tenant_categories(id) ON DELETE SET NULL`,
|
||||
`ALTER TABLE tenant_symbols ADD COLUMN IF NOT EXISTS "migratedFromIconId" TEXT`,
|
||||
`ALTER TABLE tenant_symbols ADD COLUMN IF NOT EXISTS "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP`,
|
||||
`ALTER TABLE tenant_symbols ADD COLUMN IF NOT EXISTS "updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP`,
|
||||
]
|
||||
let tsAdded = 0
|
||||
for (const sql of tenantSymbolColumns) {
|
||||
try { await prisma.$executeRawUnsafe(sql); tsAdded++ } catch (e) { /* ignore */ }
|
||||
}
|
||||
console.log(` ${tsAdded}/${tenantSymbolColumns.length} tenant_symbol columns added`)
|
||||
|
||||
console.log('✅ Database migrations complete')
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user