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?