Skip to content

Instantly share code, notes, and snippets.

@lempiy
Created April 26, 2018 10:01
Show Gist options
  • Save lempiy/c3ad47c8d10d8f497e85968025700393 to your computer and use it in GitHub Desktop.
Save lempiy/c3ad47c8d10d8f497e85968025700393 to your computer and use it in GitHub Desktop.
fixSQLite
package main
import (
"os/exec"
"fmt"
"time"
)
func main() {
var newDbName string
err := dumpDB()
if err != nil {
fmt.Println("dumpDB", err)
return
}
newDbName, err = initNewDb()
if err != nil {
fmt.Println("initNewDb", err)
return
}
err = saveOldDb()
if err != nil {
fmt.Println("saveOldDb", err)
return
}
err = applyNewDb(newDbName)
if err != nil {
fmt.Println("applyNewDb", err)
return
}
}
func clearPrevDumb() error {
cmd := "rm algo.repairsql"
out, err := exec.Command("bash","-c",cmd).Output()
fmt.Println(string(out))
return err
}
func dumpDB() error {
cmd := "echo .dump | sqlite3 Algo.db > algo.repairsql"
out, err := exec.Command("bash","-c",cmd).Output()
fmt.Println(string(out))
return err
}
func initNewDb() (string, error) {
t := time.Now().UTC()
cmd := "sqlite3 -init algo.repairsql ST-Repair"+t.Format("20060102150405")+".db"
out, err := exec.Command("bash","-c",cmd).Output()
fmt.Println(string(out))
return "ST-Repair"+t.Format("20060102150405")+".db", err
}
func saveOldDb() error {
t := time.Now().UTC()
cmd := "mv Algo.db prbAlgo"+t.Format("20060102150405")+".db"
out, err := exec.Command("bash","-c",cmd).Output()
fmt.Println(string(out))
return err
}
func applyNewDb(newDbName string) error {
cmd := "mv "+newDbName+" Algo.db"
out, err := exec.Command("bash","-c",cmd).Output()
fmt.Println(string(out))
return err
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment