60 lines
1.7 KiB
Python
60 lines
1.7 KiB
Python
"""initial_baseline - Use 000_initial_schema.sql for fresh deployments
|
|
|
|
Revision ID: 001_initial_baseline
|
|
Revises:
|
|
Create Date: 2026-01-02 16:45:00.000000
|
|
|
|
IMPORTANT: This is a baseline migration for existing databases.
|
|
|
|
For FRESH deployments:
|
|
1. Run: psql -U user -d dbname -f backend/migrations/000_initial_schema.sql
|
|
2. Run: alembic stamp head
|
|
|
|
For EXISTING deployments (already have database):
|
|
1. Run: alembic stamp head (marks database as up-to-date)
|
|
|
|
This migration intentionally does NOTHING because:
|
|
- Fresh deployments use 000_initial_schema.sql to create all tables
|
|
- Existing deployments already have all tables from 000_initial_schema.sql
|
|
- Future migrations will be incremental changes from this baseline
|
|
"""
|
|
from typing import Sequence, Union
|
|
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision: str = '001_initial_baseline'
|
|
down_revision: Union[str, None] = None
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
|
depends_on: Union[str, Sequence[str], None] = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
"""
|
|
This migration does nothing.
|
|
|
|
It serves as a baseline marker that indicates:
|
|
- All 17 tables exist (users, events, subscriptions, etc.)
|
|
- All 8 enums are defined (UserStatus, UserRole, etc.)
|
|
- All indexes and constraints are in place
|
|
|
|
The actual schema is created by running:
|
|
backend/migrations/000_initial_schema.sql
|
|
"""
|
|
pass
|
|
|
|
|
|
def downgrade() -> None:
|
|
"""
|
|
Cannot downgrade below baseline.
|
|
|
|
If you need to completely reset the database:
|
|
1. dropdb dbname
|
|
2. createdb dbname
|
|
3. psql -U user -d dbname -f backend/migrations/000_initial_schema.sql
|
|
4. alembic stamp head
|
|
"""
|
|
pass
|