テストデータ · 外部キー整合 · スキーマから

テストデータ生成: 本番に近く、外部キー整合で、数分で。

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 は妥当な金額に。カラム名、型、(任意で)サンプルデータから推定します。

config-as-code

CI で再現可能

生成設定を JSON でエクスポートし、マイグレーションと並べてコミットし、パイプラインで適用します。Python 向け CLI、Node・PHP 向け SDK。

個人情報

あるいは: 実データをマスキング

どうしても本番データが必要な場合。PII を自動検出し、フォーマットと結合の整合性を保ったままマスキングします。個人情報保護に配慮した匿名化について →

正直に言うと、フィクスチャが 2 つの 5 テーブルのプロジェクトなら Faker や factory_boy で十分です。SeedBase が活きるのは、データベースを満たして整合させる必要があるとき、テーブルが多いとき、チームで使うとき、CI で使うとき、あるいは Python 以外のサービスが同じデータベースを使うときです。20 のアプリと 226 のテーブルを持つ実際の Django プロジェクトでテストしました。まさにそのために作られた構成です。

よくある質問

データベーススキーマからテストデータを生成するにはどうすればいいですか?

スキーマをインポートし(SQL ダンプ、Django の models.py、Prisma スキーマ、または Postgres/MySQL への直接接続)、テーブルごとの行数を指定するかヒューリスティックに任せて、生成します。宣言された外部キーは既存のレコードを指し、SQL、CSV、JSON としてエクスポートするか、ターゲットのデータベースへ直接書き込めます。

SeedBase は Faker やランダムデータと何が違いますか?

Faker のようなライブラリは個々のリアルな値を生成しますが、整合の取れたデータベースは作りません。外部キー、分布、テーブル間の依存関係は自分で配線する必要があります。SeedBase はスキーマを読み取り、まさにそこを引き受けます。詳しい比較 →

生成されたテストデータに個人情報は含まれますか?

完全に合成されたデータには個人情報は含まれず、生成された値の背後に実在の人物はいません。どうしても本番データを使う必要がある場合は、フォーマットと結合の整合性を保ったままマスキングし、個人情報保護に配慮したワークフローを支援します。匿名化の詳細 →

生成処理を CI/CD に組み込めますか?

はい。生成はシードごとに決定的で再現可能です。設定は JSON としてエクスポートし、マイグレーションと並べてバージョン管理できます。CLI(pip install seedbase)と Node・PHP 向け SDK でパイプラインに組み込めます。

2 分で満たされたテスト用データベースを

登録して、スキーマを貼り付けて、生成するだけ。営業との通話もクレジットカードも不要です。無料プランで最初の手応えを十分に確かめられます。

  • 外部キー整合
  • 本番に近い分布
  • SQL / CSV / JSON
  • EU ホスティング
今すぐ無料で始める

スタック別: Django · Prisma · SQL  ·  比較: vs Mockaroo · vs Faker