You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从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 类型,无需手动定义:

  1. 安装 CLI:npm install -g supabase
  2. 登录账号:supabase login
  3. 初始化项目配置:supabase init
  4. 生成类型文件(替换为你的项目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 → string
  • int4/int8 → number
  • bool → boolean
  • jsonb → Record<string, any> 或自定义接口
  • uuid → string

内容的提问来源于stack exchange,提问作者Mintee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 09:05:15