model2data

model2data

A command-line tool that reads a database schema and generates a full, realistic fake dataset plus a ready-to-run dbt project — no production data or manual scaffolding needed.

🔗 Visit model2data
📁 Data & Analytics🗣️ English📅 September 5, 2026

Description

Analytics engineers building or testing a dbt project usually face an annoying choice: use real production data (a privacy and access-control headache) or hand-write fake rows for every table (slow, and easy to get relationships wrong). model2data automates the second option properly: point it at a schema definition, and it produces realistic, relationship-consistent sample data along with the dbt project files to actually use it.

model2data reads DBML schema definitions and generates synthetic datasets with proper foreign-key relationships preserved, using name-aware generation for roughly 35 common field patterns (emails, phone numbers, cities, etc. via Faker). It scaffolds a complete, executable dbt project around that data — seeds, staging models, tests, and connection profiles — targeting DuckDB by default or Postgres. Output is deterministic via a seed parameter, so the same schema always produces the same test data, and it can generate dbt unit-test fixtures too. It's MIT-licensed, young (10 GitHub stars), heuristic rather than fully precise in its data matching, and explicitly doesn't try to do schema migration or real-time generation.

💬 Our review

The short version: model2data solves a specific, real annoyance for analytics engineers — getting realistic test data and a working dbt scaffold from a schema in one command — cleanly and for free, though it's a young, narrow tool rather than a general data platform.

Against hand-writing seed data or dbt boilerplate, which is what most teams do today, model2data's relationship-aware generation and full project scaffolding (not just rows, but tests and profiles too) is a real time-saver. Against a general synthetic-data tool like datagen (from the same discovery batch), model2data is specifically dbt/analytics-engineering-flavored rather than general-purpose, which is either exactly what you need or overly specific depending on your stack. It's free and open-source (MIT), so there's no cost to trying it; the 10-star count means it hasn't seen much real-world battle-testing yet, and its own docs are upfront that matching is heuristic, not perfect. Worth using if you're already on dbt and need synthetic test data fast; skip it if you're not in the dbt ecosystem, where a general tool like datagen fits better.

💰 Pricing

Open sourceFree, MIT license
Self-run Free (MIT)

📊 Global score

53Average
🌐Availability15/100Faible

1 language · 0 platform

📄Profile90/100Excellent

Profile completeness

🤖 AI-enriched data

💰 Pricing model
💳 Open source

Gratuit, licence MIT

👥 Target audienceAnalytics engineers et équipes data utilisant dbt, ayant besoin de données de test réalistes sans accès aux données de production
🗣️ Languagesen
🌍 Target countriesInternational
👍

Pros

Génère à la fois les données ET le scaffolding dbt complet (seeds, modèles, tests, profils)

Préserve les relations de clés étrangères entre tables

Sortie déterministe via un paramètre de seed, reproductible

Reconnaissance de ~35 patterns de champs courants (email, téléphone, ville…)

👎

Cons

Projet jeune (10 étoiles GitHub), peu éprouvé en conditions réelles

Correspondance des types de champs heuristique, pas garantie précise à 100%

Pas de support des modèles incrémentaux ni des clés étrangères composites

Spécifique à l'écosystème dbt, pas un générateur de données généraliste

❓ Frequently asked questions

What is model2data in one sentence?▼
Does it preserve relationships between tables?▼
Which databases does it support?▼
Is the generated data reproducible?▼
Is it free?▼
Is it worth the money compared to alternatives?▼
Which tool should you pick for your case?▼