From f37cd9672cb447cb820e2da5144a25d5d6b654d7 Mon Sep 17 00:00:00 2001 From: Joe Chen Date: Sat, 26 Mar 2022 15:10:39 +0800 Subject: restore: clean up leftover and invalid chars (#6875) --- internal/db/backup.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'internal/db/backup.go') diff --git a/internal/db/backup.go b/internal/db/backup.go index f4dec721..e03d78c1 100644 --- a/internal/db/backup.go +++ b/internal/db/backup.go @@ -2,6 +2,7 @@ package db import ( "bufio" + "bytes" "fmt" "io" "os" @@ -176,8 +177,11 @@ func importTable(db *gorm.DB, table interface{}, r io.Reader) error { scanner := bufio.NewScanner(r) for scanner.Scan() { + // PostgreSQL does not like the null characters (U+0000) + cleaned := bytes.ReplaceAll(scanner.Bytes(), []byte("\\u0000"), []byte("")) + elem := reflect.New(reflect.TypeOf(table).Elem()).Interface() - err = jsoniter.Unmarshal(scanner.Bytes(), elem) + err = jsoniter.Unmarshal(cleaned, elem) if err != nil { return errors.Wrap(err, "unmarshal JSON to struct") } -- cgit v1.2.3