オーラベースのロゴ
オーラベースドキュメント
ドキュメント›ガイド›Generate TypeScript types

データベースから TypeScript 型を生成する

1 つのコマンドでテーブルを型に変換します。その後、エディターは、何かを実行する前に、間違った列または間違った値を拒否します。

4 分 読み取り·レベル 初心者·2026/10/12 に改訂
この英語のテキストはフランス語のオリジナルから自動的に生成されたもので、まだレビューされていません。
このページは自動翻訳されました。英語版が正式です。
#
生成する

1. ファイルを生成する

terminalbash
npx @aurabase/gen --url https://my-app.aurabase.cloud --key "$AURA_ANON_KEY" --out src/types/database.types.ts

このツールはプロジェクトのスキーマを読み取り、ファイルに書き込みます。 --url と --keyがない場合、環境内および .env、 .env.local 、 .env.developmentで AURABASE_URL と AURABASE_ANON_KEY ( NEXT_PUBLIC_AURABASE_URL、 VITE_AURABASE_URL 、 AURABASE_SERVICE_ROLE_KEY) が検索されます。

2 つのテーブルと 2 つの関数を含むプロジェクトでは、次のように答えられました。

text
[aurabase-gen] ✓ Types écrits dans /tmp/database.types.ts (2 table(s), 2 fonction(s), 0 enum(s), 0 vue(s)).

スキーマが変更されるたびに再実行します。 public以外のスキーマには --schema <name> を追加し、メイン タイプの名前を変更するには --type-name を追加します。

#
使用する

2. クライアントで使用する

src/lib/aurabase.tstypescript
import { createClient } from '@aurabase/aurabase-js'
import type { Database } from '../types/database.types'

export const aura = createClient<Database>(process.env.AURA_URL!, process.env.AURA_ANON_KEY!)

生成された型は、 Row、 Insert 、 Updateを使用して各テーブルを記述します。実際のファイルに対して、コンパイラは次の結果を返しました。

checked.tstypescript
const { data } = await aura.from('todos').select('id, title, done')
const title: string | undefined = data?.[0]?.title   // わかりました

const wrong: number | undefined = data?.[0]?.title   // エラー: 文字列を数値に割り当てることはできません
await aura.from('todos').insert({ title: 1 })         // エラー: 数値を文字列に割り当てることはできません
await aura.from('todos').insert({ title: 'ok' })      // OK: 他の列にはデフォルトがあります

Insertでは、デフォルトの列または null 許容列を含む列はオプションです。 Updateでは、すべての列はオプションです。

#
ヘルパー

3. コンポーネントの行タイプ

Todo.tsxtypescript
import type { Tables, TablesInsert, TablesUpdate, Enums } from '../types/database.types'

type Todo = Tables<'todos'>             // 読み取られた行
type NewTodo = TablesInsert<'todos'>    // insert() が受け入れるもの
type TodoPatch = TablesUpdate<'todos'>  // update() が受け入れるもの

Enums<'name'> はデータベース列挙型の値を与えます。

#
限界

4. チェック内容

  • 生成されたファイルにないテーブルは拒否されません。aura.from('anything') は引き続きコンパイルされ、その行は型指定されません。
  • 関数は引数とともに Functions の下に表示されます。カスタム行タイプを返す関数は、 Json または unknownとして表示されます。
  • ファイルには、生成時のスキーマが反映されます。後で追加された列は、ツールを再度実行するまでタイプには認識されません。
  • 一部のテーブルが公開キーから隠されている場合を除き、公開キーを使用して型を生成します。 service_role キーは決してコミットしないでください。