从Firebase转用Supabase,如何获取数据库类型?
Supabase 数据库类型获取方案
1. 时间戳类型的直接使用
Supabase 基于 PostgreSQL,数据库中的 timestamptz(带时区时间戳)在客户端会自动转为 JavaScript 的 Date 对象,所以可以直接用原生 Date 类型定义:
export type User = { // ... createdAt: Date; updatedAt: Date | null; };
如果需要贴合 Supabase 内部类型定义,也可以从 @supabase/supabase-js 中导入相关类型,但日常开发用 Date 足够满足需求。
2. 自动生成表结构对应类型(推荐)
Supabase CLI 可以根据你的数据库 schema 自动生成完全匹配的 TypeScript 类型,无需手动定义:
- 安装 CLI:
npm install -g supabase - 登录账号:
supabase login - 初始化项目配置:
supabase init - 生成类型文件(替换为你的项目ID):
supabase gen types typescript --project-id <你的Supabase项目ID> --schema public > types/supabase.ts
生成后直接导入使用:
import { Database } from './types/supabase'; // 直接获取users表的行类型 type User = Database['public']['Tables']['users']['Row'];
这种方式下,所有字段类型都会和数据库严格对应,包括时间戳、枚举、自定义类型等。
3. 常见类型对应关系
PostgreSQL 类型与 TypeScript 类型的常规映射:
text/varchar→stringint4/int8→numberbool→booleanjsonb→Record<string, any>或自定义接口uuid→string
内容的提问来源于stack exchange,提问作者Mintee
相关产品推荐
相关产品推荐

