MCPcopy Index your code
hub / github.com/coder/coder / applyMigrationsInTxn

Function applyMigrationsInTxn

coderd/database/migrations/migrate_test.go:1550–1583  ·  view source on GitHub ↗

applyMigrationsInTxn executes the up SQL for every migration whose version is in [from, to] inside a single transaction, mirroring pgTxnDriver. The whole batch commits or rolls back together.

(ctx context.Context, t *testing.T, sqlDB *sql.DB, from, to int)

Source from the content-addressed store, hash-verified

1548// in [from, to] inside a single transaction, mirroring pgTxnDriver. The whole
1549// batch commits or rolls back together.
1550func applyMigrationsInTxn(ctx context.Context, t *testing.T, sqlDB *sql.DB, from, to int) {
1551 t.Helper()
1552
1553 entries, err := os.ReadDir(".")
1554 require.NoError(t, err)
1555
1556 var files []string
1557 for _, entry := range entries {
1558 name := entry.Name()
1559 if !strings.HasSuffix(name, ".up.sql") {
1560 continue
1561 }
1562 var version int
1563 if _, err := fmt.Sscanf(name, "%06d_", &version); err != nil {
1564 continue
1565 }
1566 if version >= from && version <= to {
1567 files = append(files, name)
1568 }
1569 }
1570 slices.Sort(files)
1571
1572 tx, err := sqlDB.BeginTx(ctx, nil)
1573 require.NoError(t, err)
1574 defer tx.Rollback()
1575
1576 for _, name := range files {
1577 query, err := os.ReadFile(name)
1578 require.NoError(t, err)
1579 _, err = tx.ExecContext(ctx, string(query))
1580 require.NoErrorf(t, err, "apply migration %s", name)
1581 }
1582 require.NoError(t, tx.Commit())
1583}
1584
1585func TestMigration000498SoftDeleteStaleWorkspaceAgents(t *testing.T) {
1586 t.Parallel()

Calls 6

ReadDirMethod · 0.80
ExecContextMethod · 0.80
CommitMethod · 0.80
HelperMethod · 0.65
NameMethod · 0.65
ReadFileMethod · 0.65

Tested by

no test coverage detected