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:
@@ -110,11 +110,10 @@ async function main() {
|
||||
patterns: ['Massstab', 'Nordrichtung', 'Windrichtung'] },
|
||||
]
|
||||
|
||||
// Delete ALL old system icons (regardless of fileKey pattern)
|
||||
const deletedIcons = await prisma.iconAsset.deleteMany({
|
||||
where: { isSystem: true },
|
||||
})
|
||||
console.log(`🗑️ ${deletedIcons.count} old system icons removed`)
|
||||
// NOTE: We intentionally do NOT delete old system icons here.
|
||||
// TenantSymbol rows reference IconAsset.id via foreign key.
|
||||
// Deleting would either break references (tenant symbols become 404s)
|
||||
// or cascade-delete tenant symbols. Instead we upsert by fileKey.
|
||||
|
||||
// Clean up empty global categories
|
||||
const oldGlobalCats = await prisma.iconCategory.findMany({ where: { tenantId: null } })
|
||||
@@ -163,6 +162,7 @@ async function main() {
|
||||
}
|
||||
|
||||
let created = 0
|
||||
let updated = 0
|
||||
for (const file of svgFiles) {
|
||||
// Clean name: remove .svg, remove _de/_DE suffix
|
||||
let name = file.replace('.svg', '')
|
||||
@@ -173,7 +173,21 @@ async function main() {
|
||||
const category = findCategory(file)
|
||||
|
||||
const existing = await prisma.iconAsset.findFirst({ where: { fileKey } })
|
||||
if (!existing) {
|
||||
if (existing) {
|
||||
await prisma.iconAsset.update({
|
||||
where: { id: existing.id },
|
||||
data: {
|
||||
name,
|
||||
categoryId: category.id,
|
||||
mimeType: 'image/svg+xml',
|
||||
isSystem: true,
|
||||
isActive: true,
|
||||
width: 48,
|
||||
height: 48,
|
||||
},
|
||||
})
|
||||
updated++
|
||||
} else {
|
||||
await prisma.iconAsset.create({
|
||||
data: {
|
||||
name,
|
||||
@@ -189,7 +203,7 @@ async function main() {
|
||||
}
|
||||
}
|
||||
|
||||
console.log(`✅ FKS Signaturen: ${created} new icons created (${svgFiles.length} total SVGs)`)
|
||||
console.log(`✅ FKS Signaturen: ${created} created, ${updated} updated (${svgFiles.length} total SVGs)`)
|
||||
|
||||
// Create a demo project
|
||||
const demoProject = await prisma.project.upsert({
|
||||
|
||||
Reference in New Issue
Block a user