基本的なSQLテーブルをDrizzleスキーマに変換する
シンプルなSQL CREATE TABLE文をDrizzle ORMテーブル定義に変換する方法を学びます。カラムビルダー、notNull、テーブルのエクスポート規約を解説します。
Basic Schema
詳細な説明
CREATE TABLEからDrizzleテーブル定義へ
最も基本的な変換は、SQL CREATE TABLE文を適切なダイアレクト関数(pgTable、mysqlTable、またはsqliteTable)を使用してDrizzleテーブル定義に変換することです。各カラムはカラムビルダー関数の呼び出しになり、制約はチェーンメソッドとして表現されます。
SQLの例
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) NOT NULL,
bio TEXT,
is_active BOOLEAN NOT NULL DEFAULT true
);
生成されるDrizzleスキーマ(PostgreSQL)
import { boolean, pgTable, serial, text, varchar } from "drizzle-orm/pg-core";
export const users = pgTable("users", {
id: serial("id").primaryKey(),
name: varchar("name", { length: 100 }).notNull(),
email: varchar("email", { length: 255 }).notNull(),
bio: text("bio"),
isActive: boolean("is_active").default(true).notNull(),
});
主要な概念
| SQL要素 | Drizzleの対応 |
|---|---|
| テーブル名 | pgTable()の第1引数 |
| カラム名 | カラムビルダーの第1引数 |
NOT NULL |
.notNull()チェーン |
| Nullableカラム | .notNull()なし(デフォルト動作) |
PRIMARY KEY |
.primaryKey()チェーン |
DEFAULT |
.default(value)チェーン |
インポート生成
Drizzleは各カラムビルダーの明示的なインポートが必要です。コンバーターは必要なビルダーを分析し、正しいダイアレクトモジュールからの単一のimport文を生成します。スキーマで実際に使用されているビルダーのみが含まれ、インポートがクリーンに保たれます。
変数命名
エクスポートされるテーブル変数は、SQLテーブル名から派生したcamelCaseを使用します。例えば、user_accountsはuserAccountsになります。元のSQLテーブル名はテーブル関数の第1文字列引数として保持されます。
ユースケース
既存のPostgreSQL、MySQL、またはSQLiteデータベースがあり、Drizzle ORMの使用を開始したい場合。スキーマファイルを手動で書く代わりに、CREATE TABLE文を貼り付けてすぐに使えるDrizzleスキーマを取得できます。