テストデータ生成: 本番に近く、外部キー整合で、数分で。
SeedBase はデータベーススキーマ(SQL、Django、Prisma、または Postgres/MySQL への直接接続)を読み込み、宣言された外部キーが解決され、分布が本番に近く見える合成テストデータを生成します。開発、ステージング、CI、デモのために。
無料プラン · クレジットカード不要 · EU ホスティング · トラッカーなし
手作業のテストデータの問題
どのプロジェクトにも、二つの良くない選択肢があります。何もテストしない手打ちの 3 行のフィクスチャか、実際の顧客データを含む本番データベースのコピーを開発者全員のノート PC に置くか、です。
フィクスチャは古くなる
マイグレーションのたびに手作業で保守したテストデータが壊れます。新しいカラムは空のまま、新しいテーブルはまるごと欠けます。
空のデータベースはバグを隠す
ページネーション、N+1 クエリ、パフォーマンス問題、埋まったダッシュボードは、現実的なデータ量と分布があって初めて表面化します。
本番ダンプは個人情報のリスク
実在のメールアドレス、口座情報、住所が開発マシンや CI のボリューム、古いバックアップに残ります。コピーはどれも攻撃対象になります。
使い方
スキーマをインポート
SQL ダンプを貼り付け、models.py をプッシュ(VS Code または JetBrains プラグイン)、Prisma スキーマをアップロード、またはデータベースに直接接続します。
生成する
テーブルごとの行数を指定するか、ヒューリスティックに任せます。分布は設定可能です。ロングテール、正規分布、親レコードごとの行数。
エクスポートまたはプッシュ
SQL、CSV、JSON でダウンロードするか、Postgres/MySQL へ直接書き込みます。シードごとに決定的なので、CI で再現できます。
生成データの特徴
宣言された外部キーが解決
子レコードは既存の親を参照します。自己参照(parent_id)や 1:1 の関係をまたいでも同様です。挿入はトポロジカル順で行われます。
現実に近い分布
すべてのユーザーがちょうど 5 件の注文を持つわけではありません。ロングテールや正規分布で現実的なばらつきを作ります。ページネーションやパフォーマンスのバグはそこに潜みます。
日付は時間とともに移動
タイムスタンプは今日を基準に生成されます。「直近 30 日」のダッシュボードは月を追うごとに空になるのではなく、埋まったままになります。
カラムは自動で理解される
email はメールアドレスに、city は都市に、price は妥当な金額に。カラム名、型、(任意で)サンプルデータから推定します。
CI で再現可能
生成設定を JSON でエクスポートし、マイグレーションと並べてコミットし、パイプラインで適用します。Python 向け CLI、Node・PHP 向け SDK。
よくある質問
データベーススキーマからテストデータを生成するにはどうすればいいですか?
スキーマをインポートし(SQL ダンプ、Django の models.py、Prisma スキーマ、または Postgres/MySQL への直接接続)、テーブルごとの行数を指定するかヒューリスティックに任せて、生成します。宣言された外部キーは既存のレコードを指し、SQL、CSV、JSON としてエクスポートするか、ターゲットのデータベースへ直接書き込めます。
SeedBase は Faker やランダムデータと何が違いますか?
Faker のようなライブラリは個々のリアルな値を生成しますが、整合の取れたデータベースは作りません。外部キー、分布、テーブル間の依存関係は自分で配線する必要があります。SeedBase はスキーマを読み取り、まさにそこを引き受けます。詳しい比較 →
生成されたテストデータに個人情報は含まれますか?
完全に合成されたデータには個人情報は含まれず、生成された値の背後に実在の人物はいません。どうしても本番データを使う必要がある場合は、フォーマットと結合の整合性を保ったままマスキングし、個人情報保護に配慮したワークフローを支援します。匿名化の詳細 →
生成処理を CI/CD に組み込めますか?
はい。生成はシードごとに決定的で再現可能です。設定は JSON としてエクスポートし、マイグレーションと並べてバージョン管理できます。CLI(pip install seedbase)と Node・PHP 向け SDK でパイプラインに組み込めます。