fix: correct column names in data migration script to match actual Directus schema
Some checks failed
Build and Push Backend Image / build (push) Successful in 37s
Build and Push Frontend Image / build (push) Has been cancelled

- 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 <noreply@anthropic.com>
This commit is contained in:
2026-03-04 19:33:33 +01:00
parent ceb57ec1c4
commit 480369aa4e

View File

@@ -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,