Calling transactional rollback “safe testing” omits production locking risk from ALTER TABLE
Source references: 2The guidance describes `BEGIN; ALTER TABLE...; ROLLBACK;` as safe testing. Rollback can undo most schema changes, but it does not prevent `ALTER TABLE` from taking strong locks, blocking other sessions, or performing lengthy scans. The main file also explicitly scopes the Skill to live-database changes.
When tried on a busy production database, the operation may block reads or writes, accumulate connections, and cause service timeouts even though it is eventually rolled back.
The main file explicitly includes live, no-downtime schema changes, while the detailed guidance calls a rollback transaction “safe testing.” Rollback can undo most DDL results, but the visible guidance does not warn that `ALTER TABLE` may still acquire strong locks, block sessions, or perform lengthy work. Following it on production therefore presents an availability risk. Users can ask for lock-level checks, timeouts, rehearsal, and maintenance-window conditions.
- Deciding whether and how to partition a large table, or how to store semi-structured data.- Planning a schema change on a live database without downtime.Show 1 other places
### Safe schema evolution- **Transactional DDL**: most DDL operations can run in transactions and be rolled back—`BEGIN; ALTER TABLE...; ROLLBACK;` for safe testing.- **Concurrent index creation**: `CREATE INDEX CONCURRENTLY` avoids blocking writes but can't run in transactions.- **Volatile defaults cause rewrites**: adding `NOT NULL` columns with volatile defaults (e.g., `now()`, `gen_random_uuid()`) rewrites entire table. Non-volatile defaults are fast.