Files
user_management/supabase/migrations/20260127000000_init_users.sql
karlcarlo fdfc00f539 feat: 初始化 React + Vite + Supabase 用户管理应用
- 使用 Vite 创建 React 应用基础结构,包含主应用布局和路由
- 集成 Supabase 客户端,实现用户表的 CRUD 操作
- 添加 Ant Design UI 组件库,构建用户管理界面
- 配置数据库迁移脚本,初始化 users 表及示例数据
- 设置开发环境配置,包括 ESLint、Git 忽略文件和项目依赖
2026-01-27 19:50:17 +08:00

46 lines
1.2 KiB
SQL

-- Migration: Create users table
-- Created at: 2026-01-27
-- 1. Create the table
CREATE TABLE IF NOT EXISTS public.users (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
name TEXT NOT NULL,
email TEXT,
role TEXT,
created_at TIMESTAMP WITH TIME ZONE DEFAULT timezone('utc'::text, now()) NOT NULL
);
-- 2. Enable RLS
ALTER TABLE public.users ENABLE ROW LEVEL SECURITY;
-- 3. Create Policy (Dev Mode: Allow All)
-- WARN: In production, you should restrict this!
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_policies
WHERE schemaname = 'public'
AND tablename = 'users'
AND policyname = 'Enable all operations for anon users'
) THEN
CREATE POLICY "Enable all operations for anon users" ON public.users
FOR ALL
TO anon
USING (true)
WITH CHECK (true);
END IF;
END $$;
-- 4. Seed Data (Optional)
INSERT INTO public.users (name, email, role)
SELECT 'Alice', 'alice@example.com', 'Admin'
WHERE NOT EXISTS (
SELECT 1 FROM public.users WHERE email = 'alice@example.com'
);
INSERT INTO public.users (name, email, role)
SELECT 'Bob', 'bob@example.com', 'User'
WHERE NOT EXISTS (
SELECT 1 FROM public.users WHERE email = 'bob@example.com'
);