From be8d67c9d908dbf347f7593a7d8aab114573f252 Mon Sep 17 00:00:00 2001 From: mkelvers Date: Mon, 6 Apr 2026 23:47:29 +0200 Subject: [PATCH] add migration tracking to entrypoint --- entrypoint.sh | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index 5680163..4fad3bd 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,12 +1,29 @@ #!/bin/bash set -e -# Initialize database if it doesn't exist -if [ ! -f "$DATABASE_FILE" ]; then - sqlite3 "$DATABASE_FILE" < migrations/001_init.sql - sqlite3 "$DATABASE_FILE" < migrations/002_add_anime_titles.sql - sqlite3 "$DATABASE_FILE" < migrations/003_add_anime_airing.sql -fi +# Create migrations tracking table if it doesn't exist +sqlite3 "$DATABASE_FILE" "CREATE TABLE IF NOT EXISTS schema_migrations ( + version TEXT PRIMARY KEY, + applied_at DATETIME DEFAULT CURRENT_TIMESTAMP +);" + +# Function to run migration +run_migration() { + local version=$1 + local file=$2 + + # Check if migration has been run + if ! sqlite3 "$DATABASE_FILE" "SELECT 1 FROM schema_migrations WHERE version = '$version';" | grep -q 1; then + echo "Running migration: $version" + sqlite3 "$DATABASE_FILE" < "$file" + sqlite3 "$DATABASE_FILE" "INSERT INTO schema_migrations (version) VALUES ('$version');" + fi +} + +# Run migrations +run_migration "001_init" "migrations/001_init.sql" +run_migration "002_add_anime_titles" "migrations/002_add_anime_titles.sql" +run_migration "003_add_anime_airing" "migrations/003_add_anime_airing.sql" # Start the app exec "$@"