- 使用 Vite 创建 React 应用基础结构,包含主应用布局和路由 - 集成 Supabase 客户端,实现用户表的 CRUD 操作 - 添加 Ant Design UI 组件库,构建用户管理界面 - 配置数据库迁移脚本,初始化 users 表及示例数据 - 设置开发环境配置,包括 ESLint、Git 忽略文件和项目依赖
46 lines
1.2 KiB
SQL
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'
|
|
);
|