934d6ddc58
- Fix missing database columns for password reset (#8) - Add must_change_password column to admin_users table - Add password_changed_at column for tracking password changes - Fix feedback functionality (#9) - Add require_moderation column to event_feedback_settings table - Add missing host_name column to events table - Add download control features (#10) - Add allow_downloads, disable_right_click, watermark_downloads columns to events - Implement download restrictions in gallery endpoints - Update event creation and update endpoints to support new fields - Prevent downloads when disabled for an event - Login functionality (#4) verified working with proper credentials All database migrations included and tested with Docker environment. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Database Migrations
This directory contains database migrations for the Wedding Photo Sharing platform.
Directory Structure
/core
Essential migrations that are always run for new deployments. These include:
init.js- Initial database schema creation- Backup service tables (029-035)
- Gallery feedback tables (033)
/legacy
Migrations needed only when upgrading from older versions. New deployments can skip these as the core schema already includes all necessary tables and columns.
For New Deployments
If you're deploying this application for the first time:
- The
initializeDatabase()function insrc/database/db.jswill create all necessary tables - Only migrations in the
/coredirectory will be run - This ensures a clean, optimized database schema
For Existing Deployments
If you're upgrading from an older version:
- All migrations (both core and legacy) will be run in sequence
- The migration system tracks which migrations have been applied
- Only new migrations will be executed
Running Migrations
# Development
npm run migrate
# Production
npm run migrate:prod
Note on Duplicate Migration Numbers
The legacy directory contains renamed duplicates:
014_add_host_name_to_events_duplicate.js(was duplicate of 014)027_add_rate_limit_settings_duplicate.js(was duplicate of 027)
These have been renamed to avoid conflicts while preserving the migration history.