| table_schema | table_name | column_name | constraint_type | | ------------------- | ------------------------------- | --------------------- | --------------- | | auth | users | id | PRIMARY KEY | | public | schools | id | PRIMARY KEY | | auth | refresh_tokens | id | PRIMARY KEY | | auth | instances | id | PRIMARY KEY | | auth | audit_log_entries | id | PRIMARY KEY | | auth | schema_migrations | version | PRIMARY KEY | | storage | buckets | id | PRIMARY KEY | | public | teachers | id | PRIMARY KEY | | storage | objects | id | PRIMARY KEY | | storage | objects | bucket_id | FOREIGN KEY | | public | teachers | email | UNIQUE | | storage | migrations | id | PRIMARY KEY | | storage | migrations | name | UNIQUE | | pgsodium | key | id | PRIMARY KEY | | pgsodium | key | parent_key | FOREIGN KEY | | pgsodium | key | name | UNIQUE | | public | teachers | school_id | FOREIGN KEY | | public | classes | id | PRIMARY KEY | | public | classes | school_id | FOREIGN KEY | | vault | secrets | id | PRIMARY KEY | | vault | secrets | key_id | FOREIGN KEY | | public | students | id | PRIMARY KEY | | public | students | email | UNIQUE | | public | students | class_id | FOREIGN KEY | | public | teacher_classes | id | PRIMARY KEY | | public | teacher_classes | teacher_id | UNIQUE | | public | teacher_classes | class_id | UNIQUE | | public | teacher_classes | teacher_id | FOREIGN KEY | | public | teacher_classes | class_id | FOREIGN KEY | | public | student_achievements_old | id | PRIMARY KEY | | public | student_achievements_old | student_id | FOREIGN KEY | | public | student_achievements_old | achievement_id | FOREIGN KEY | | public | phonics_exercise_types | id | PRIMARY KEY | | public | phonics_exercises | id | PRIMARY KEY | | public | phonics_exercises | type_id | FOREIGN KEY | | public | story_exercise_words | id | PRIMARY KEY | | public | story_exercise_words | story_id | UNIQUE | | public | story_exercise_words | word | UNIQUE | | public | story_exercise_words | exercise_type | UNIQUE | | public | story_exercise_words | story_id | FOREIGN KEY | | public | phonics_words | id | PRIMARY KEY | | public | phonics_exercise_words | id | PRIMARY KEY | | public | phonics_exercise_words | exercise_id | UNIQUE | | public | phonics_exercise_words | word_id | UNIQUE | | public | phonics_exercise_words | exercise_id | FOREIGN KEY | | public | phonics_exercise_words | word_id | FOREIGN KEY | | public | stories | id | PRIMARY KEY | | public | stories | student_id | FOREIGN KEY | | public | student_achievements | id | PRIMARY KEY | | public | student_achievements | student_id | FOREIGN KEY | | public | student_achievements | achievement_id | FOREIGN KEY | | public | media_types | id | PRIMARY KEY | | public | phonics_exercise_media | id | PRIMARY KEY | | public | phonics_exercise_media | exercise_id | FOREIGN KEY | | public | phonics_exercise_media | media_type_id | FOREIGN KEY | | public | student_phonics_progress | id | PRIMARY KEY | | public | student_phonics_progress | student_id | UNIQUE | | public | student_phonics_progress | exercise_id | UNIQUE | | public | student_phonics_progress | student_id | FOREIGN KEY | | public | student_phonics_progress | exercise_id | FOREIGN KEY | | public | student_phonics_attempts | id | PRIMARY KEY | | public | student_phonics_attempts | student_id | FOREIGN KEY | | public | student_phonics_attempts | exercise_id | FOREIGN KEY | | public | student_phonics_attempt_answers | id | PRIMARY KEY | | public | student_phonics_attempt_answers | attempt_id | FOREIGN KEY | | public | student_phonics_attempt_answers | word_id | FOREIGN KEY | | public | achievement_types | id | PRIMARY KEY | | public | phonics_achievements | id | PRIMARY KEY | | public | phonics_achievements | type_id | FOREIGN KEY | | public | student_phonics_achievements | id | PRIMARY KEY | | public | student_phonics_achievements | student_id | UNIQUE | | public | student_phonics_achievements | achievement_id | UNIQUE | | public | student_phonics_achievements | student_id | FOREIGN KEY | | public | student_phonics_achievements | achievement_id | FOREIGN KEY | | public | teacher_invites | id | PRIMARY KEY | | public | teacher_invites | token | UNIQUE | | public | teacher_invites | school_id | FOREIGN KEY | | public | classes | teacher_id | FOREIGN KEY | | public | story_pages | id | PRIMARY KEY | | public | languages | id | PRIMARY KEY | | public | story_generations | id | PRIMARY KEY | | public | story_generations | story_id | FOREIGN KEY | | public | interests | id | PRIMARY KEY | | public | interests | student_id | UNIQUE | | public | interests | category | UNIQUE | | public | interests | item | UNIQUE | | public | interests | student_id | FOREIGN KEY | | public | languages | code | UNIQUE | | supabase_migrations | schema_migrations | version | PRIMARY KEY | | supabase_migrations | seed_files | path | PRIMARY KEY | | public | phonics_categories | id | PRIMARY KEY | | public | students | school_id | FOREIGN KEY | | public | story_pages | story_id | FOREIGN KEY | | public | story_recordings | story_id | FOREIGN KEY | | public | story_pages | story_id | FOREIGN KEY | | public | story_recordings | story_id | FOREIGN KEY | | public | phonics_word_audio | id | PRIMARY KEY | | public | phonics_word_audio | word | UNIQUE | | public | story_recordings | id | PRIMARY KEY | | public | story_recordings | student_id | FOREIGN KEY | | public | story_themes | id | PRIMARY KEY | | public | story_themes | slug | UNIQUE | | public | story_subjects | id | PRIMARY KEY | | public | story_subjects | slug | UNIQUE | | public | story_characters | id | PRIMARY KEY | | public | story_characters | slug | UNIQUE | | public | story_settings | id | PRIMARY KEY | | public | story_settings | slug | UNIQUE | | public | stories | theme_id | FOREIGN KEY | | public | stories | subject_id | FOREIGN KEY | | public | stories | character_id | FOREIGN KEY | | public | stories | setting_id | FOREIGN KEY | | auth | identities | user_id | FOREIGN KEY | | auth | refresh_tokens | token | UNIQUE | | auth | sessions | id | PRIMARY KEY | | auth | sessions | user_id | FOREIGN KEY | | auth | refresh_tokens | session_id | FOREIGN KEY | | auth | mfa_factors | id | PRIMARY KEY | | auth | mfa_factors | user_id | FOREIGN KEY | | auth | mfa_challenges | id | PRIMARY KEY | | auth | mfa_challenges | factor_id | FOREIGN KEY | | auth | mfa_amr_claims | session_id | UNIQUE | | auth | mfa_amr_claims | authentication_method | UNIQUE | | auth | mfa_amr_claims | session_id | FOREIGN KEY | | auth | mfa_amr_claims | id | PRIMARY KEY | | auth | sso_providers | id | PRIMARY KEY | | auth | sso_domains | id | PRIMARY KEY | | auth | sso_domains | sso_provider_id | FOREIGN KEY | | auth | saml_providers | id | PRIMARY KEY | | auth | saml_providers | entity_id | UNIQUE | | auth | saml_providers | sso_provider_id | FOREIGN KEY | | auth | saml_relay_states | id | PRIMARY KEY | | auth | saml_relay_states | sso_provider_id | FOREIGN KEY | | auth | users | phone | UNIQUE | | auth | flow_state | id | PRIMARY KEY | | auth | saml_relay_states | flow_state_id | FOREIGN KEY | | auth | identities | id | PRIMARY KEY | | auth | identities | provider_id | UNIQUE | | auth | identities | provider | UNIQUE | | auth | one_time_tokens | id | PRIMARY KEY | | auth | one_time_tokens | user_id | FOREIGN KEY | | public | achievements | id | PRIMARY KEY | | auth | mfa_factors | last_challenged_at | UNIQUE | | storage | s3_multipart_uploads | id | PRIMARY KEY | | storage | s3_multipart_uploads | bucket_id | FOREIGN KEY | | storage | s3_multipart_uploads_parts | id | PRIMARY KEY | | storage | s3_multipart_uploads_parts | upload_id | FOREIGN KEY | | storage | s3_multipart_uploads_parts | bucket_id | FOREIGN KEY | | realtime | schema_migrations | version | PRIMARY KEY | | realtime | subscription | id | PRIMARY KEY | | public | stories | theme_id | FOREIGN KEY | | public | stories | subject_id | FOREIGN KEY | | public | stories | character_id | FOREIGN KEY | | public | stories | setting_id | FOREIGN KEY | | realtime | messages | id | PRIMARY KEY | | realtime | messages | inserted_at | PRIMARY KEY | | public | story_subjects | null | CHECK | | public | story_recordings | null | CHECK | | public | story_characters | null | CHECK | | public | schools | null | CHECK | | public | story_themes | null | CHECK | | auth | mfa_amr_claims | null | CHECK | | public | phonics_exercises | null | CHECK | | public | teacher_invites | null | CHECK | | storage | migrations | null | CHECK | | public | story_settings | null | CHECK | | realtime | subscription | null | CHECK | | public | students | null | CHECK | | public | stories | null | CHECK | | auth | mfa_amr_claims | null | CHECK | | public | story_recordings | null | CHECK | | public | students | null | CHECK | | public | phonics_word_audio | null | CHECK | | public | languages | null | CHECK | | pgsodium | key | null | CHECK | | public | phonics_word_audio | null | CHECK | | realtime | messages | null | CHECK | | public | achievements | null | CHECK | | public | phonics_exercise_types | null | CHECK | | public | teacher_invites | null | CHECK | | auth | users | null | CHECK | | supabase_migrations | seed_files | null | CHECK | | public | students | null | CHECK | | auth | refresh_tokens | null | CHECK | | pgsodium | key | null | CHECK | | public | student_phonics_attempt_answers | null | CHECK | | auth | identities | null | CHECK | | storage | s3_multipart_uploads | null | CHECK | | auth | flow_state | null | CHECK | | auth | mfa_factors | null | CHECK | | public | phonics_words | null | CHECK | | public | stories | null | CHECK | | public | story_subjects | null | CHECK | | auth | flow_state | null | CHECK | | public | phonics_words | null | CHECK | | realtime | subscription | null | CHECK | | auth | sso_domains | null | CHECK | | public | story_settings | null | CHECK | | auth | users | null | CHECK | | public | phonics_categories | null | CHECK | | public | teacher_invites | null | CHECK | | public | stories | null | CHECK | | public | story_themes | null | CHECK | | storage | s3_multipart_uploads_parts | null | CHECK | | public | teachers | null | CHECK | | public | teachers | null | CHECK | | public | story_themes | null | CHECK | | public | phonics_exercise_words | null | CHECK | | public | students | null | CHECK | | realtime | subscription | null | CHECK | | auth | mfa_amr_claims | null | CHECK | | public | teacher_classes | null | CHECK | | auth | flow_state | null | CHECK | | public | students | null | CHECK | | public | story_characters | null | CHECK | | auth | mfa_factors | null | CHECK | | realtime | schema_migrations | null | CHECK | | public | languages | null | CHECK | | public | stories | null | CHECK | | public | phonics_word_audio | null | CHECK | | pgsodium | key | null | CHECK | | storage | s3_multipart_uploads | null | CHECK | | auth | saml_providers | null | CHECK | | auth | saml_providers | null | CHECK | | storage | s3_multipart_uploads_parts | null | CHECK | | public | story_characters | null | CHECK | | storage | s3_multipart_uploads | null | CHECK | | public | interests | null | CHECK | | public | story_generations | null | CHECK | | vault | secrets | null | CHECK | | public | students | null | CHECK | | vault | secrets | null | CHECK | | auth | users | null | CHECK | | public | story_themes | null | CHECK | | public | classes | null | CHECK | | auth | mfa_amr_claims | null | CHECK | | auth | identities | null | CHECK | | public | story_generations | null | CHECK | | public | story_exercise_words | null | CHECK | | public | achievement_types | null | CHECK | | realtime | messages | null | CHECK | | auth | one_time_tokens | null | CHECK | | auth | mfa_challenges | null | CHECK | | public | teachers | null | CHECK | | auth | mfa_amr_claims | null | CHECK | | public | teacher_invites | null | CHECK | | storage | s3_multipart_uploads_parts | null | CHECK | | public | teachers | null | CHECK | | public | phonics_categories | null | CHECK | | public | story_settings | null | CHECK | | public | schools | null | CHECK | | realtime | subscription | null | CHECK | | public | story_recordings | null | CHECK | | public | stories | null | CHECK | | public | story_pages | null | CHECK | | auth | identities | null | CHECK | | public | interests | null | CHECK | | auth | flow_state | null | CHECK | | auth | one_time_tokens | null | CHECK | | public | teacher_invites | null | CHECK | | auth | schema_migrations | null | CHECK | | auth | mfa_challenges | null | CHECK | | public | student_phonics_attempts | null | CHECK | | public | story_settings | null | CHECK | | public | teachers | null | CHECK | | pgsodium | key | null | CHECK | | public | interests | null | CHECK | | auth | instances | null | CHECK | | public | schools | null | CHECK | | public | student_phonics_achievements | null | CHECK | | storage | migrations | null | CHECK | | public | classes | null | CHECK | | public | story_exercise_words | null | CHECK | | public | phonics_word_audio | null | CHECK | | public | media_types | null | CHECK | | public | languages | null | CHECK | | public | story_themes | null | CHECK | | auth | one_time_tokens | null | CHECK | | auth | one_time_tokens | null | CHECK | | realtime | messages | null | CHECK | | realtime | messages | null | CHECK | | public | story_characters | null | CHECK | | public | story_subjects | null | CHECK | | storage | s3_multipart_uploads_parts | null | CHECK | | auth | sso_domains | null | CHECK | | storage | s3_multipart_uploads_parts | null | CHECK | | public | teacher_invites | null | CHECK | | public | students | null | CHECK | | auth | saml_relay_states | null | CHECK | | public | stories | null | CHECK | | public | story_settings | null | CHECK | | public | story_exercise_words | null | CHECK | | auth | mfa_challenges | null | CHECK | | auth | one_time_tokens | null | CHECK | | auth | saml_providers | null | CHECK | | public | story_recordings | null | CHECK | | public | phonics_words | null | CHECK | | public | classes | null | CHECK | | public | phonics_achievements | null | CHECK | | public | phonics_exercises | null | CHECK | | public | story_pages | null | CHECK | | public | student_phonics_progress | null | CHECK | | auth | saml_providers | null | CHECK | | realtime | subscription | null | CHECK | | public | story_subjects | null | CHECK | | auth | sso_providers | null | CHECK | | public | media_types | null | CHECK | | storage | s3_multipart_uploads | null | CHECK | | auth | one_time_tokens | null | CHECK | | public | story_generations | null | CHECK | | auth | saml_relay_states | null | CHECK | | public | story_themes | null | CHECK | | storage | buckets | null | CHECK | | storage | s3_multipart_uploads_parts | null | CHECK | | vault | secrets | null | CHECK | | public | teacher_classes | null | CHECK | | public | phonics_categories | null | CHECK | | auth | mfa_factors | null | CHECK | | auth | audit_log_entries | null | CHECK | | auth | mfa_factors | null | CHECK | | public | classes | null | CHECK | | auth | saml_providers | null | CHECK | | public | story_subjects | null | CHECK | | public | story_settings | null | CHECK | | public | phonics_categories | null | CHECK | | public | story_subjects | null | CHECK | | auth | flow_state | null | CHECK | | public | student_phonics_attempts | null | CHECK | | public | story_generations | null | CHECK | | public | phonics_exercises | null | CHECK | | auth | sso_domains | null | CHECK | | storage | s3_multipart_uploads | null | CHECK | | public | schools | null | CHECK | | auth | users | null | CHECK | | public | interests | null | CHECK | | realtime | messages | null | CHECK | | public | phonics_exercise_types | null | CHECK | | public | story_exercise_words | null | CHECK | | auth | audit_log_entries | null | CHECK | | public | story_characters | null | CHECK | | public | student_achievements_old | null | CHECK | | net | http_request_queue | null | CHECK | | auth | saml_providers | null | CHECK | | storage | s3_multipart_uploads | null | CHECK | | supabase_migrations | seed_files | null | CHECK | | public | phonics_achievements | null | CHECK | | public | story_pages | null | CHECK | | public | phonics_exercises | null | CHECK | | storage | objects | null | CHECK | | public | student_phonics_attempt_answers | null | CHECK | | storage | migrations | null | CHECK | | auth | sso_domains | null | CHECK | | public | story_recordings | null | CHECK | | public | classes | null | CHECK | | net | _http_response | null | CHECK | | realtime | subscription | null | CHECK | | public | teacher_invites | null | CHECK | | auth | sessions | null | CHECK | | public | phonics_exercise_media | null | CHECK | | public | schools | null | CHECK | | net | http_request_queue | null | CHECK | | public | classes | null | CHECK | | auth | sso_providers | null | CHECK | | public | story_subjects | null | CHECK | | auth | one_time_tokens | null | CHECK | | public | story_recordings | null | CHECK | | public | students | null | CHECK | | realtime | subscription | null | CHECK | | public | story_recordings | null | CHECK | | net | http_request_queue | null | CHECK | | auth | identities | null | CHECK | | storage | s3_multipart_uploads | null | CHECK | | public | story_themes | null | CHECK | | auth | saml_relay_states | null | CHECK | | public | teacher_invites | null | CHECK | | auth | mfa_factors | null | CHECK | | auth | identities | null | CHECK | | public | stories | null | CHECK | | public | story_pages | null | CHECK | | vault | secrets | null | CHECK | | vault | secrets | null | CHECK | | public | achievement_types | null | CHECK | | auth | saml_relay_states | null | CHECK | | public | classes | null | CHECK | | public | interests | null | CHECK | | supabase_migrations | schema_migrations | null | CHECK | | public | stories | null | CHECK | | public | phonics_exercise_media | null | CHECK | | auth | mfa_challenges | null | CHECK | | public | story_characters | null | CHECK | | storage | s3_multipart_uploads_parts | null | CHECK | | public | languages | null | CHECK | | public | teachers | null | CHECK | | public | teachers | null | CHECK | | storage | buckets | null | CHECK | | public | story_settings | null | CHECK | | public | interests | null | CHECK | | public | languages | null | CHECK | | auth | sessions | null | CHECK | | public | story_pages | null | CHECK | | net | http_request_queue | null | CHECK | | auth | saml_providers | null | CHECK | | public | teacher_classes | null | CHECK | | public | story_generations | null | CHECK | | auth | flow_state | null | CHECK | | public | story_characters | null | CHECK | | storage | s3_multipart_uploads_parts | null | CHECK | | public | student_achievements | null | CHECK | | public | students | null | CHECK | | public | story_generations | null | CHECK | | auth | one_time_tokens | null | CHECK | | net | http_request_queue | null | CHECK | | auth | mfa_factors | null | CHECK | | storage | s3_multipart_uploads_parts | null | CHECK | | public | teacher_classes | null | CHECK |