Spaces:
Sleeping
Sleeping
Download backend/sql/022_app_push_tokens.sql from stylevoice/talk: direct link, hf CLI and curl.
- Browser
- Download file 2.8 kB
-
https://huggingface.co/spaces/stylevoice/talk/resolve/main/backend/sql/022_app_push_tokens.sql
- Command line
-
hf download hf://spaces/stylevoice/talk/backend/sql/022_app_push_tokens.sql
-
curl -L -o 022_app_push_tokens.sql https://huggingface.co/spaces/stylevoice/talk/resolve/main/backend/sql/022_app_push_tokens.sql
2.8 kB
| -- 022: ๋ค์ดํฐ๋ธ ์ฑ (iOS/Android) FCM ํธ์ ์ฑ๋ ์ถ๊ฐ | |
| -- | |
| -- ๋ฐฐ๊ฒฝ: | |
| -- - 2026-05-05 SQL 017 ์์ Web Push ํ๊ธฐ (push_subscriptions DROP). | |
| -- - 2026-05-10 iOS/Android ๋ค์ดํฐ๋ธ ์ฑ ๋ฐฐํฌ ์๋ฃ โ FCM ์ผ๋ก ํธ์ ๋ถํ. | |
| -- - ํ๊ท ๊ฐ๋ (playlist_scheduling.md): "push_subscriptions ๋ถํ ๊ธ์ง, ์ ํธ์ | |
| -- ์ฑ๋์ ๋ณ๋ ํ ์ด๋ธ" โ ๋ณธ ๋ง์ด๊ทธ๋ ์ด์ ์ device_push_tokens ๋ผ๋ ์ ์ด๋ฆ ์ฌ์ฉ. | |
| -- | |
| -- ์ ์ฉ ์ผ์: 2026-05-10 | |
| -- 1) device_push_tokens โ ์ฌ์ฉ์ ๋จ๋ง๋ณ FCM registration token ๋ณด๊ด. | |
| -- ํ ์ฌ์ฉ์๊ฐ ์ฌ๋ฌ ๋จ๋ง ์ฌ์ฉ ๊ฐ๋ฅ (iPhone + iPad + Android ๋ฑ) โ composite key. | |
| CREATE TABLE IF NOT EXISTS device_push_tokens ( | |
| user_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE CASCADE, | |
| token TEXT NOT NULL, | |
| platform TEXT NOT NULL CHECK (platform IN ('ios', 'android')), | |
| app_version TEXT, | |
| created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), | |
| updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), | |
| PRIMARY KEY (user_id, token) | |
| ); | |
| CREATE INDEX IF NOT EXISTS idx_device_push_tokens_user | |
| ON device_push_tokens (user_id); | |
| -- ๊ฐ์ ํ ํฐ์ด ๋ค๋ฅธ user ๋ก ์ฎ๊ฒจ๊ฐ๋ ์ผ์ด์ค (๋จ๋ง ์๋/์ฌ๋ก๊ทธ์ธ) โ ํ ํฐ ๊ธฐ์ค | |
| -- ์ผ๋ก๋ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ user ํ ์ ๋ฆฌํ ์ ์๊ฒ. | |
| CREATE INDEX IF NOT EXISTS idx_device_push_tokens_token | |
| ON device_push_tokens (token); | |
| -- RLS โ ๋ณธ์ธ ํ ํฐ๋ง read/write. ๋ฐ์ก์ ์๋ฒ(service_role)๊ฐ ์ง์ query. | |
| ALTER TABLE device_push_tokens ENABLE ROW LEVEL SECURITY; | |
| DROP POLICY IF EXISTS "device_push_tokens_self_select" ON device_push_tokens; | |
| CREATE POLICY "device_push_tokens_self_select" ON device_push_tokens | |
| FOR SELECT USING (auth.uid() = user_id); | |
| DROP POLICY IF EXISTS "device_push_tokens_self_insert" ON device_push_tokens; | |
| CREATE POLICY "device_push_tokens_self_insert" ON device_push_tokens | |
| FOR INSERT WITH CHECK (auth.uid() = user_id); | |
| DROP POLICY IF EXISTS "device_push_tokens_self_update" ON device_push_tokens; | |
| CREATE POLICY "device_push_tokens_self_update" ON device_push_tokens | |
| FOR UPDATE USING (auth.uid() = user_id); | |
| DROP POLICY IF EXISTS "device_push_tokens_self_delete" ON device_push_tokens; | |
| CREATE POLICY "device_push_tokens_self_delete" ON device_push_tokens | |
| FOR DELETE USING (auth.uid() = user_id); | |
| -- 2) playlist_schedules.notify_app_push โ ์ค์ผ์ค ๋ฐ์ฌ ์ FCM ํธ์๋ ๋ณด๋ผ์ง. | |
| -- SQL 017 ์ notify_kakao ์ ๋ ๋ฆฝ. ๋ ๋ค ์ผ๋ฉด ๋ ๋ค ๋ฐ์ก. | |
| ALTER TABLE playlist_schedules | |
| ADD COLUMN IF NOT EXISTS notify_app_push BOOLEAN NOT NULL DEFAULT FALSE; | |
| -- 3) care_messages ๋ ๋์ผ ์ฑ๋ ์ถ๊ฐ (์๋ถ ๋ฉ์์ง๋ ํธ์ ์ต์ ๊ฐ๋ฅํ๋๋ก). | |
| ALTER TABLE care_messages | |
| ADD COLUMN IF NOT EXISTS notify_app_push BOOLEAN NOT NULL DEFAULT FALSE; | |