From 480369aa4ed87f067bdc3c78a8329b66279880b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= Date: Wed, 4 Mar 2026 19:33:33 +0100 Subject: [PATCH] fix: correct column names in data migration script to match actual Directus schema MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - directus_files: uploaded_on → date_created alias - directus_users: join_date → date_created, remove email_notifications_key - junction_directus_users_files: remove non-existent sort column - sexy_videos: remove non-existent likes_count/plays_count (default 0) - sexy_recordings: remove non-existent featured column (schema has default false) Co-Authored-By: Claude Sonnet 4.6 --- .../backend/src/scripts/data-migration.ts | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/packages/backend/src/scripts/data-migration.ts b/packages/backend/src/scripts/data-migration.ts index beba5e2..b28f34d 100644 --- a/packages/backend/src/scripts/data-migration.ts +++ b/packages/backend/src/scripts/data-migration.ts @@ -44,7 +44,7 @@ function copyFile(src: string, dest: string) { async function migrateFiles() { console.log("📁 Migrating files..."); const { rows } = await query( - `SELECT id, title, description, filename_disk, type, filesize, duration, uploaded_by, date_created + `SELECT id, title, description, filename_disk, type, filesize, duration, uploaded_by, uploaded_on as date_created FROM directus_files`, ); @@ -95,8 +95,8 @@ async function migrateUsers() { console.log("👥 Migrating users..."); const { rows } = await query( `SELECT u.id, u.email, u.password, u.first_name, u.last_name, - u.description, u.avatar, u.date_created, - u.artist_name, u.slug, u.email_notifications_key, + u.description, u.avatar, u.join_date as date_created, + u.artist_name, u.slug, r.name as role_name FROM directus_users u LEFT JOIN directus_roles r ON u.role = r.id @@ -147,7 +147,7 @@ async function migrateUsers() { JSON.stringify(tags), role, user.avatar, - true, // Assume existing users are verified + true, user.date_created, ], ); @@ -160,7 +160,7 @@ async function migrateUsers() { async function migrateUserPhotos() { console.log("🖼️ Migrating user photos..."); const { rows } = await query( - `SELECT directus_users_id as user_id, directus_files_id as file_id, sort + `SELECT directus_users_id as user_id, directus_files_id as file_id FROM junction_directus_users_files`, ); @@ -173,7 +173,7 @@ async function migrateUserPhotos() { await query( `INSERT INTO user_photos (user_id, file_id, sort) VALUES ($1, $2, $3) ON CONFLICT DO NOTHING`, - [row.user_id, row.file_id, row.sort || 0], + [row.user_id, row.file_id, 0], ); migrated++; } @@ -222,7 +222,7 @@ async function migrateVideos() { console.log("🎬 Migrating videos..."); const { rows } = await query( `SELECT id, slug, title, description, image, movie, tags, upload_date, - premium, featured, likes_count, plays_count + premium, featured FROM sexy_videos`, ); @@ -244,8 +244,8 @@ async function migrateVideos() { video.upload_date, video.premium, video.featured, - video.likes_count || 0, - video.plays_count || 0, + 0, + 0, ], ); migrated++; @@ -329,7 +329,7 @@ async function migrateRecordings() { console.log("🎙️ Migrating recordings..."); const { rows } = await query( `SELECT id, title, description, slug, duration, events, device_info, - user_created as user_id, status, tags, linked_video, featured, public, + user_created as user_id, status, tags, linked_video, public, original_recording_id, date_created, date_updated FROM sexy_recordings`, ); @@ -338,9 +338,9 @@ async function migrateRecordings() { for (const recording of rows) { await query( `INSERT INTO recordings (id, title, description, slug, duration, events, device_info, - user_id, status, tags, linked_video, featured, public, + user_id, status, tags, linked_video, public, original_recording_id, date_created, date_updated) - VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15) ON CONFLICT (id) DO NOTHING`, [ recording.id, @@ -356,7 +356,6 @@ async function migrateRecordings() { recording.status, Array.isArray(recording.tags) ? JSON.stringify(recording.tags) : recording.tags, recording.linked_video, - recording.featured, recording.public, recording.original_recording_id, recording.date_created,