MCPcopy Create free account
hub / github.com/GoEdgeLab/EdgeNode / UpgradeV3

Method UpgradeV3

internal/caches/list_file_sqlite.go:480–577  ·  view source on GitHub ↗
(oldDir string, brokenOnError bool)

Source from the content-addressed store, hash-verified

478}
479
480func (this *SQLiteFileList) UpgradeV3(oldDir string, brokenOnError bool) error {
481 // index.db
482 var indexDBPath = oldDir + "/index.db"
483 _, err := os.Stat(indexDBPath)
484 if err != nil {
485 return nil
486 }
487 remotelogs.Println("CACHE", "upgrading local database from '"+oldDir+"' ...")
488
489 defer func() {
490 _ = fsutils.Remove(indexDBPath)
491 remotelogs.Println("CACHE", "upgrading local database finished")
492 }()
493
494 db, err := dbs.OpenWriter("file:" + indexDBPath + "?cache=shared&mode=rwc&_journal_mode=WAL&_sync=" + dbs.SyncMode + "&_locking_mode=EXCLUSIVE")
495 if err != nil {
496 return err
497 }
498
499 defer func() {
500 _ = db.Close()
501 }()
502
503 var isFinished = false
504 var offset = 0
505 var count = 10000
506
507 for {
508 if isFinished {
509 break
510 }
511
512 err = func() error {
513 defer func() {
514 offset += count
515 }()
516
517 rows, err := db.Query(`SELECT "hash", "key", "headerSize", "bodySize", "metaSize", "expiredAt", "staleAt", "createdAt", "host", "serverId" FROM "cacheItems_v3" ORDER BY "id" ASC LIMIT ?, ?`, offset, count)
518 if err != nil {
519 return err
520 }
521 defer func() {
522 _ = rows.Close()
523 }()
524
525 var hash = ""
526 var key = ""
527 var headerSize int64
528 var bodySize int64
529 var metaSize int64
530 var expiredAt int64
531 var staleAt int64
532 var createdAt int64
533 var host string
534 var serverId int64
535
536 isFinished = true
537

Callers 2

upgradeOldDBMethod · 0.95
TestFileList_UpgradeV3Function · 0.80

Calls 8

AddMethod · 0.95
PrintlnFunction · 0.92
OpenWriterFunction · 0.92
NextMethod · 0.80
StatMethod · 0.65
RemoveMethod · 0.65
CloseMethod · 0.65
QueryMethod · 0.45

Tested by 1

TestFileList_UpgradeV3Function · 0.64