Data Quality: Dimensions and Error Classes — the Theory Behind the SQL Checks

A lot gets written about data quality, and very little gets measured. The German-language practitioner’s standard reference alone lists sixty possible quality criteria — from timeliness to reliability —, and even the lean models still arrive at six to fifteen dimensions. Yet the core of the matter is surprisingly tangible: a data error caught during … Read more

SQL Server vs. PostgreSQL — Pros and Cons for the Switch

SQL Server or PostgreSQL — the question is rarely “which database is better?” but “which one fits your budget, your team and your platform?”. Whoever confuses the two questions migrates for the wrong reasons and only notices once the licensing bill shrinks while operating costs grow. Quick overview: Prerequisite: Hands-on SQL Server experience is all you … Read more

Setting Up a Claude Code Project with a Development Workflow and Database — the Open Starter Kit Explained

An empty repo and Claude Code, Anthropic’s coding agent in the terminal — that’s all it takes to get going. And that is exactly the problem: the model writes code immediately, but by default nothing ensures that a specification exists first, that a review happens afterwards, or that the database schema deploys reproducibly. A Claude … Read more

Database CI/CD with PostgreSQL — the Complete Lifecycle from Object File to Automated Deploy

In many projects the database schema lives in the database instead of the repository — grown out of years of hand-run ALTERs, fully documented nowhere. It only becomes visible when a second environment is needed or a deploy breaks. Postgres database CI/CD flips that relationship: the repository describes the desired state, and every environment — from the throwaway … Read more

GitHub Actions for Postgres Deploys — a Throwaway Database as Quality Gate

The bug was a typo in an ALTER TABLE — and it was found by the staging deploy on a Friday afternoon. Yet that exact find is automatable: set up a GitHub Actions Postgres deployment against a throwaway database, and every pull request becomes a full dress rehearsal. Syntax and semantic errors, ordering problems, and broken idempotency surface before … Read more

Tracking Schema Changes Without a Framework — Run-Once Scripts, Checksums and Immutability

The backfill ran a second time on the second deploy — and overwrote values that had been corrected by the business in the meantime. Accidents like this are not prevented by discipline, only by a memory: if you want to track database schema changes without introducing Flyway or Liquibase, all it takes is exactly one table and … Read more

Adding a NOT NULL Column to a Populated Table — the Expand/Contract Pattern

The ALTER TABLE ran through cleanly on your machine — on staging, the same deploy fails with column “country_code” of relation “customer” contains null values. The difference is not the SQL, it is the data: the local table was empty, the one on staging was not. If you want to add a NOT NULL column to an existing table that … Read more

Maximal Template Over Empty Repo — a Claude Code Setup That Prunes Itself via /init

Every new project starts with the same ritual: create an empty repo, then hunt down the folder structure, the conventions and the workflow files from the last project — and forget half of them. A Claude Code project template can invert that reflex: instead of starting with nothing and building up piece by piece, you … Read more