All posts

The migration was going fine until you needed a new column.

Adding a new column sounds simple. In practice, it can break production if not done right. Schema changes touch live data, query performance, and indexes. They can lock tables, spike CPU, and stall requests. That’s why a new column isn’t just an ALTER TABLE—it’s an operation that demands precision. The safest way to add a new column is to make the change backward-compatible. First, add the column as nullable with no defaults. This avoids table rewrites on large datasets. Then backfill data in b

Free White Paper

Fine-Grained Authorization + Column-Level Encryption: The Complete Guide

Architecture patterns, implementation strategies, and security best practices. Delivered to your inbox.

Free. No spam. Unsubscribe anytime.

Adding a new column sounds simple. In practice, it can break production if not done right. Schema changes touch live data, query performance, and indexes. They can lock tables, spike CPU, and stall requests. That’s why a new column isn’t just an ALTER TABLE—it’s an operation that demands precision.

The safest way to add a new column is to make the change backward-compatible. First, add the column as nullable with no defaults. This avoids table rewrites on large datasets. Then backfill data in batches, using queries that limit row locks and avoid full table scans. Only after the backfill is complete should you add constraints, defaults, or indexes.

On teams practicing continuous delivery, use feature flags to hide the new column from production requests until it’s ready. This ensures old application versions keep working while the new column is phased in. For distributed systems, run migrations with tools that coordinate schema updates across nodes, and monitor replication lag before deploying changes globally.

Continue reading? Get the full guide.

Fine-Grained Authorization + Column-Level Encryption: Architecture Patterns & Best Practices

Free. No spam. Unsubscribe anytime.

For large tables in PostgreSQL or MySQL, consider online DDL tools like pt-online-schema-change or native ALTER TABLE operations with ALGORITHM=INPLACE or LOCK=NONE. These approaches keep table writes available while the schema evolves. In cloud environments, measure operation impact against IOPS limits and budget for the extra load.

A new column is a small decision with large consequences. Done well, it’s invisible to users. Done poorly, it’s a costly outage.

See how you can ship schema changes like adding a new column with safety and speed. Try it live with hoop.dev and watch it work in minutes.

Open source

Save the open-source gateway for agent data access

Hoop is MIT-licensed infrastructure for controlling how AI agents reach production data. Star hoophq/hoop so you can inspect it, deploy it, or share it when your team starts governing agent access.

Star and save the repo →More posts