シードデータを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ファイルが必要です。