Database migrations, rehearsed by AI agents

The change nobody wants to run at midnight, rehearsed

Schema changes and data fixes are hard to undo, so they wait for a quiet night and a brave engineer. Agents find every query a change touches, write the migration and the rollback, rehearse both on a copy, and hand you a runbook. A person runs production.

YOU HAND OVERSplit customers.address into a table
migration · orders-db (copy)Trace…
6 dependent queries found0042_split_address.up.sql0042_split_address.down.sql
customers · address
104112 Harbor Rd, Leeds
10428 Mill Lane, Austin
104340 King St, Toronto
10443 Quay Sq, Dublin
→
addresses
—
—
—
—
○Row counts match · 4 = 4○Rollback restores the address column
1Trace
2Write
3Rehearse
4Runbook
YOU GETRunbook, both directions rehearsed on a copyUp 41 s · down 38 s · counts match
Built by Syncfusion, serving 47,000+ organizations.25+ years of developer tools, now reimagined for the agent-first era.
47,000+Syncfusion customers
1,600+Syncfusion UI components
25+Years of Syncfusion developer tools
Syncfusion component licensing is separate.
Impact first

Trace the dependencies of a schema change

A text search finds most of the places that read a column. The ones it misses break the morning after. The agent traces the change through code, reports, and jobs in every repository, then updates each one in the same change.

QueriesORM calls and raw SQL, in every repository
ReportsSaved reports and dashboards that read the column
JobsExports, syncs, and nightly scripts
API and event contractsAPIs and events that expose the field
orders-db · split customers.address0 FOUND · 0 UPDATED
customers
id
name
email
address
addresses
id
customer_id
line1
city
postcode
QUERYOrderRepository.GetShippingAddress—
QUERYCustomerSearch · address LIKE—
QUERYInvoicePdf.BillTo—
REPORTMonthly deliveries by city—
REPORTTax by region—
JOBnightly-carrier-export—
JOBcrm-sync—
Both directions

Rehearse the migration and rollback on a database copy

The migration and its rollback are written together and run against a copy of your database, up and then down, with checks after each. Your team provides the copy or a masked snapshot. What you review is a runbook built from a real rehearsal, not a script nobody has run.

  1. 01Step order and dependenciesWhich step runs first, and what each one depends on.
  2. 02How long each rehearsal step tookHow long each step took on a copy of production.
  3. 03When to pause or roll backThe checks to run, and when to roll back instead of going on.
rehearsal · orders-db-copy0 OF 6
1Restore a copyorders-db snapshot · 1.2M customers
2Migrate up0042_split_address.up.sql
3CheckCounts match · no orphan addresses
4Roll down0042_split_address.down.sql
5Check againAddress rows restored, counts match
6Write the runbookOrder, timing, checks, and stop points
LOCK NOTE FOR THE RUNBOOKDropping the column holds a write lock for about 3 s. Run it after the nightly export, not during it.
Data fixes

Resume a backfill after a failed batch

Moving a million rows is where one-off scripts go wrong. The agent writes backfills that run in batches, can run twice safely, and resume after a failure, and check their result against counts you agreed on first.

Batched and resumableA failure picks up from the last checkpoint instead of starting again.
Verify results against agreed countsThe checks are defined before the script runs, and they must match after.
A person runs productionAgents rehearse on copies. Your team runs the real thing, with the runbook.
backfill_addresses.ts · 20 batches of 60,000RUNNING
0 of 1,200,000 rows
Rows in customers with an address…
Rows in addresses…
Customers without an address row…
The same day, twice

Rosa reviews an address-table migration rehearsal

Illustrative example, not a customer result.

Here is what the work looks like today, and what changes when an AI team takes the busywork off the plate.

Without BoldCreateWith BoldCreate
09:00
Customers need more than one shipping address. It means splitting a table.Parked since spring
Rosa describes the change in two sentences.2 minutes
11:00
A search finds 14 queries that read the address. Nobody is sure that is all.Unknown blast radius
The impact list shows 23 queries, 4 reports, and 2 nightly jobs, with files.Impact list with files
16:00
The migration is written by hand. The rollback is a TODO.No way back
Migration and rollback both rehearsed on a copy, with timing and lock notes.Both directions rehearsed on a copy
23:30
Production run during the maintenance window. A report breaks the next morning.Hotfix at 8 a.m.
The DBA follows the runbook. Every check matches.Quiet morning
A night of manual work and a morning of hotfixes handed back

Frequently asked questions

How do agents find everything a schema change touches?
The agent traces the change through ORM calls and raw SQL, saved reports, jobs, and the APIs and events that expose the field, in every repository. Then it updates each one in the same change.
Do agents run database and data migrations in production?
No. Agents write the migration and its rollback together and rehearse both on a copy of your database. Your team provides that copy or a masked snapshot, and runs production, following the runbook.
What’s in the migration runbook?
The order of steps and what each depends on, and how long each step took on a copy of production. It also lists the checks to run, including when to roll back instead of going on.
How are large backfills handled safely?
Backfills run in batches, can run twice safely, and resume from the last checkpoint after a failure. They check their result against counts you agree on before the script runs.

Start with one migration to rehearse

Describe the change and provide a copy of the database. Get the impact list, both directions rehearsed on that copy, and a runbook your DBA can sign off.

$199 a month for 20 seats · AI and sandboxes at provider cost + 10% platform fee