Part of #333 .
Scope
prod Supabase에서 `warehouse` 스키마를 완전 제거하고, 검증된 엔티티 테이블을 `public.*`로 옮긴다.
Pre-flight (반드시 먼저)
```sql
SELECT conname, conrelid::regclass, confrelid::regclass
FROM pg_constraint
WHERE confrelid::regclass::text LIKE 'warehouse.%';
```
prod에서 실행 → 모든 cross-schema FK를 나열
결과를 아래 마이그레이션 2/4 스텝에 누락 없이 반영
`SELECT count(*)` 로 각 드롭 대상 테이블(seed_posts, images, instagram_accounts, posts_legacy 등) 실데이터 여부 확인, 있으면 이관 계획 별도 수립
Deliverables
`supabase/migrations/20260425_000001_drop_warehouse_and_promote_entities.sql` — 단일 트랜잭션
파이프라인/레거시 테이블 DROP CASCADE: raw_posts, raw_post_sources, seed_posts, seed_spots, seed_asset, images, instagram_accounts, posts
`public.posts`의 cross-schema FK 제거 (pre-flight 결과 전부)
`ALTER TABLE warehouse. SET SCHEMA public` for artists, groups, brands, group_members, admin_audit_log
FK 재생성 (public.* 대상)
`DROP SCHEMA warehouse CASCADE`
SeaORM mirror 삭제: `packages/api-server/migration/src/m20260419_000001_create_raw_posts_tables.rs`, `m20260420_000001_add_initial_scraped_at_to_raw_post_sources.rs`
`packages/api-server/migration/src/lib.rs`에서 두 마이그레이션 등록 제거
Acceptance
로컬에서 `just dev-reset` 성공 (`\\dt warehouse.*` 결과 empty)
`public.posts`가 `public.artists`/`public.groups`에 FK 연결
기존 insert/select 쿼리들 (artist/group 이름 기반 resolve 포함) 정상 동작
Depends on
Rollback
Supabase PITR 7일 보관. step 2 직전 수동 snapshot 트리거.
실패 시 단일 트랜잭션이므로 롤백 자동.
Part of #333.
Scope
prod Supabase에서 `warehouse` 스키마를 완전 제거하고, 검증된 엔티티 테이블을 `public.*`로 옮긴다.
Pre-flight (반드시 먼저)
```sql
SELECT conname, conrelid::regclass, confrelid::regclass
FROM pg_constraint
WHERE confrelid::regclass::text LIKE 'warehouse.%';
```
Deliverables
Acceptance
Depends on
Rollback