Merge pull request #195 from jaredwolff/fix/migration-media-sort-date

fix(migrations): handle pre-existing tables missing media_sort_date
This commit is contained in:
Dionisio Pozo
2026-03-11 08:38:53 +01:00
committed by GitHub
2 changed files with 6 additions and 2 deletions
+2 -2
View File
@@ -10,7 +10,7 @@ COPY static static
# Create a minimal project to download and cache dependencies
RUN mkdir -p src && \
echo 'fn main() { println!("Dummy build for caching dependencies"); }' > src/main.rs && \
RUSTFLAGS="-C target-cpu=native" cargo build --release && \
cargo build --release && \
rm -rf src static-dist target/release/deps/oxicloud* target/release/build/oxicloud-*
# Stage 2: Build the application
FROM rust:1.94.0-alpine3.23 AS builder
@@ -27,7 +27,7 @@ COPY static static
COPY migrations migrations
# Build with all optimizations (DATABASE_URL only needed at compile-time for sqlx)
ARG DATABASE_URL="postgres://postgres:postgres@localhost/oxicloud"
RUN DATABASE_URL="${DATABASE_URL}" RUSTFLAGS="-C target-cpu=native" cargo build --release
RUN DATABASE_URL="${DATABASE_URL}" cargo build --release
# Stage 3: Create minimal final image
FROM alpine:3.23.3
@@ -560,6 +560,10 @@ CREATE TABLE IF NOT EXISTS storage.files (
media_sort_date TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP
);
-- Ensure media_sort_date exists on pre-existing tables (CREATE TABLE IF NOT EXISTS skips it)
ALTER TABLE storage.files ADD COLUMN IF NOT EXISTS
media_sort_date TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP;
-- A user cannot have two non-trashed files with the same name in the same folder
CREATE UNIQUE INDEX IF NOT EXISTS idx_files_unique_name_in_folder
ON storage.files(folder_id, name, user_id) WHERE NOT is_trashed AND folder_id IS NOT NULL;