{
  "id": 17388648,
  "title": "Our 32 migrations are 36 KB of SQL, and the folder they live in holds 2.4 MB of JSON",
  "url": "https://urgent.news/2026/10/31/our-32-migrations-are-36-kb-of-sql-and-the-folder-they-live-in-holds",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-31T11:14:45.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/daniel_pertu/our-32-migrations-are-36-kb-of-sql-and-the-folder-they-live-in-holds-24-mb-of-json-1a13"
  },
  "original_language": "en",
  "account": "Nakodo's 32 migrations are contained within a drizzle/ folder that occupies 2.4 MB of space. These migrations are generated from a TypeScript schema file using drizzle-kit, and the JSON files within the folder hold 35,819 bytes of data, while the SQL files contain 33 bytes. There are 70 times more generated metadata than SQL.\n\nAll 32 migration files together consist of 36 KB of content and 225 statements, with the smallest file being 51 bytes that adds a logo URL column to the campaigns table. The largest file is 8.4 KB and creates nine tables. The median file contains one or two ALTER TABLE lines, and 29 out of the 32 migration files have machine-picked names.\n\nThe JSON files play a crucial role in the migration process. There is a _journal.json file that lists the 32 entries, each containing information such as the index, version, timestamp, tag, and breakpoint comments. Additionally, there are 32 snapshots, one for each migration, which describe the schema after that particular migration. These snapshots are complete descriptions of the schema, including tables, columns, indexes, foreign keys, and bytes.\n\nThe JSON files do not run against the database, as they serve as generated output and are not edited after being written. The snapshots, not the database or the SQL, are relied upon by drizzle-kit. Every snapshot has its own ID and the previous snapshot's ID, forming a chain that allows for detectable parallel generation and enables checking whether changes were truly reverted or if something survived.",
  "summary": "Nakodo has 25 tables and 318 columns. Getting there took 32 migrations, generated by drizzle-kit from a TypeScript schema file, and the drizzle/ folder they live in is the second largest directory in the repository. Here is the ratio that started this post: 32 .sql files 35,819 bytes 33 .json files 2,495,839 bytes Seventy times more generated metadata than SQL. None of the JSON runs against the…",
  "key_points": [
    "32 migrations stored in 2.4 MB JSON folder",
    "SQL files contain 33 bytes, JSON files contain 35,819 bytes",
    "JSON files crucial for migration process"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}