add migration tracking to entrypoint
This commit is contained in:
@@ -1,12 +1,29 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Initialize database if it doesn't exist
|
# Create migrations tracking table if it doesn't exist
|
||||||
if [ ! -f "$DATABASE_FILE" ]; then
|
sqlite3 "$DATABASE_FILE" "CREATE TABLE IF NOT EXISTS schema_migrations (
|
||||||
sqlite3 "$DATABASE_FILE" < migrations/001_init.sql
|
version TEXT PRIMARY KEY,
|
||||||
sqlite3 "$DATABASE_FILE" < migrations/002_add_anime_titles.sql
|
applied_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||||
sqlite3 "$DATABASE_FILE" < migrations/003_add_anime_airing.sql
|
);"
|
||||||
fi
|
|
||||||
|
# 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
|
# Start the app
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
|||||||
Reference in New Issue
Block a user