Skip to main content

Database Migrations

This document details all database migrations and schema changes in the STO Education Platform.

Migration System Overview

The platform uses Supabase for database management with SQL migration files stored in the supabase/migrations/ directory. Migrations are applied automatically during deployment and can be run manually for development.

Migration Files Structure

Core Schema Migrations

Initial Schema Setup

File: 20240101000000_initial_schema.sql

User Profiles System

File: 20240102000000_add_user_profiles.sql

Courses System

File: 20240103000000_add_courses_system.sql

Sessions System

File: 20240104000000_add_sessions_system.sql

Payment System

File: 20240105000000_add_payment_system.sql

Quiz System

File: 20240106000000_add_quiz_system.sql

Teacher Mark Schemes

File: 20240107000000_add_teacher_mark_schemes.sql

Analytics and Monitoring

File: 20240108000000_add_analytics_tables.sql

Row Level Security (RLS) Policies

Profiles Table Policies

Courses Table Policies

Sessions Table Policies

Functions and Triggers

Updated At Trigger

Mochi Score Calculation Function

Migration Management

Running Migrations

Migration Best Practices

  1. Atomic Changes: Each migration should be atomic and reversible
  2. Naming Convention: Use timestamp prefix for ordering
  3. Backward Compatibility: Ensure migrations don’t break existing data
  4. Testing: Test migrations on staging environment first
  5. Rollback Plan: Always have a rollback strategy

Migration Scripts