MCPcopy Create free account
hub / github.com/cloudbase/garm / enableIncrementalVacuum

Method enableIncrementalVacuum

database/sql/sql.go:510–532  ·  view source on GitHub ↗
(conn *gorm.DB, dbName string)

Source from the content-addressed store, hash-verified

508}
509
510func (s *sqlDatabase) enableIncrementalVacuum(conn *gorm.DB, dbName string) error {
511 var autoVacuum int
512 if err := conn.Raw("PRAGMA auto_vacuum").Scan(&autoVacuum).Error; err != nil {
513 return fmt.Errorf("failed to read auto_vacuum for %s db: %w", dbName, err)
514 }
515
516 // 2 = INCREMENTAL, already set
517 if autoVacuum == 2 {
518 return nil
519 }
520
521 slog.InfoContext(s.ctx, "migrating database to incremental auto_vacuum", "database", dbName)
522
523 if err := conn.Exec("PRAGMA auto_vacuum = INCREMENTAL").Error; err != nil {
524 return fmt.Errorf("failed to set auto_vacuum for %s db: %w", dbName, err)
525 }
526 // VACUUM is required to apply the auto_vacuum mode change.
527 if err := conn.Exec("VACUUM").Error; err != nil {
528 return fmt.Errorf("failed to vacuum %s db for auto_vacuum migration: %w", dbName, err)
529 }
530
531 return nil
532}
533
534func (s *sqlDatabase) ensureTemplates(migrateTemplates bool) error {
535 if !migrateTemplates {

Callers 1

migrateAutoVacuumMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected