基本的なSQLテーブルをDrizzleスキーマに変換する

シンプルなSQL CREATE TABLE文をDrizzle ORMテーブル定義に変換する方法を学びます。カラムビルダー、notNull、テーブルのエクスポート規約を解説します。

Basic Schema

詳細な説明

CREATE TABLEからDrizzleテーブル定義へ

最も基本的な変換は、SQL CREATE TABLE文を適切なダイアレクト関数(pgTablemysqlTable、または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_accountsuserAccountsになります。元のSQLテーブル名はテーブル関数の第1文字列引数として保持されます。

ユースケース

既存のPostgreSQL、MySQL、またはSQLiteデータベースがあり、Drizzle ORMの使用を開始したい場合。スキーマファイルを手動で書く代わりに、CREATE TABLE文を貼り付けてすぐに使えるDrizzleスキーマを取得できます。

試してみる — SQL to Drizzle Schema

フルツールを開く