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

Function updateMigrationTracking

scripts/develop/dbrecovery.go:457–487  ·  view source on GitHub ↗

updateMigrationTracking connects to the running server's database and captures current migration state. Called after the server health check passes.

(ctx context.Context, _ slog.Logger, cfg *devConfig)

Source from the content-addressed store, hash-verified

455// database and captures current migration state. Called after
456// the server health check passes.
457func updateMigrationTracking(ctx context.Context, _ slog.Logger, cfg *devConfig) error {
458 pgURL := os.Getenv("CODER_PG_CONNECTION_URL")
459 if pgURL == "" {
460 var err error
461 pgURL, err = builtinPostgresURL(cfg)
462 if err != nil {
463 return xerrors.Errorf("resolve builtin postgres URL: %w", err)
464 }
465 }
466
467 db, err := connectDB(ctx, pgURL)
468 if err != nil {
469 return xerrors.Errorf("connect for tracking update: %w", err)
470 }
471 defer db.Close()
472
473 if _, err := db.ExecContext(ctx, trackingDDL); err != nil {
474 return xerrors.Errorf("ensure tracking table: %w", err)
475 }
476
477 dbVersion, _, err := currentMigrationVersion(ctx, db)
478 if err != nil {
479 return xerrors.Errorf("get db version: %w", err)
480 }
481 if dbVersion < 0 {
482 return nil
483 }
484
485 migrDir := filepath.Join(cfg.projectRoot, "coderd", "database", "migrations")
486 return captureDownSQL(ctx, db, migrDir, dbVersion)
487}
488
489func builtinPostgresURL(cfg *devConfig) (string, error) {
490 pgDir := filepath.Join(cfg.configDir, "postgres")

Callers 1

developFunction · 0.85

Calls 7

builtinPostgresURLFunction · 0.85
connectDBFunction · 0.85
currentMigrationVersionFunction · 0.85
captureDownSQLFunction · 0.85
ExecContextMethod · 0.80
CloseMethod · 0.65
ErrorfMethod · 0.45

Tested by

no test coverage detected