シードデータをJSON配列としてエクスポートする

APIモック、テストフィクスチャ、ORMシーディング用にJSON配列形式でシードデータを生成します。SQL型がJSON型にどのようにマッピングされるかを学びます。

Output Formats

詳細な説明

JSON出力形式

JSON Array出力形式は、各オブジェクトがデータベース行を表す構造化されたオブジェクトの配列を生成します。生のSQLが最適でない場合に理想的です。

単一テーブル出力

単一テーブルの場合、出力はプレーンなJSON配列です:

[
  {
    "id": 1,
    "first_name": "James",
    "last_name": "Smith",
    "email": "james.smith42@gmail.com",
    "is_active": true
  },
  {
    "id": 2,
    "first_name": "Emily",
    "last_name": "Garcia",
    "email": "emily.garcia17@outlook.com",
    "is_active": false
  }
]

複数テーブル出力

スキーマに複数テーブルが含まれる場合、出力はテーブル名をキーとしたオブジェクトになります:

{
  "users": [ ... ],
  "products": [ ... ]
}

SQL型→JSON型マッピング

SQL型 JSON型
INTEGER, SERIAL number 42
DECIMAL, FLOAT number 19.99
VARCHAR, TEXT string "hello"
BOOLEAN boolean true
TIMESTAMP, DATE string "2023-07-15 14:27:38"
NULL値 null null

JSONシードの用途

  • APIモック: JSON をモックサーバー(MSW、json-serverなど)に読み込んでフロントエンド開発中のバックエンドレスポンスをシミュレート
  • テストフィクスチャ: JSONファイルをテストスイートでフィクスチャとしてインポート
  • ORMシーディング: Prisma、Sequelize、TypeORMなどシードスクリプトでJSONオブジェクトを受け付けるフレームワークに使用
  • フロントエンドプロトタイピング: JSONを直接Reactのstateやコンテキストプロバイダーに渡してUI開発

整形された出力

JSON出力は読みやすさのために常に2スペースインデントでフォーマットされます。サイズが問題の場合は外部で圧縮できます。

ユースケース

モックAPIレイヤーを持つReactフロントエンドを構築しています。バックエンドAPIの準備を待たずにチームがUIを開発・テストできるよう、MSW(Mock Service Worker)に読み込むリアルなユーザーと商品データのJSONファイルが必要です。

試してみる — Database Seed Generator

フルツールを開く