Добрый день, когда я делаю Deserialize(data) база не восстанавливается:
func (dw *databaseWrapper) restoreBackup(ctx context.Context, data []byte) error {
//_ "modernc.org/sqlite"
//dw.DB,_ = sql.Open("sqlite",":memory:")
conn, err := dw.DB.Conn(ctx)
if err != nil {
return err
}
defer conn.Close()
err = conn.Raw(func(driverConn any) error {
return driverConn.(sqliteBackuper).Deserialize(data)
})
return err
}
Если сохраняю в файл и делаю NewRestore, то всё норм:
func (dw *databaseWrapper) restoreBackup(ctx context.Context, data []byte) error {
//"modernc.org/sqlite"
//dw.DB,_ = sql.Open("sqlite",":memory:")
conn, err := dw.DB.Conn(ctx)
if err != nil {
return err
}
defer conn.Close()
tempFilename := path.Join(os.TempDir(), fmt.Sprintf("backup_%s", dw.randSequence(10)))
err = os.WriteFile(tempFilename, data, os.ModeAppend)
if err != nil {
return err
}
defer os.RemoveAll(tempFilename)
err = conn.Raw(func(driverConn any) error {
bck, err := driverConn.(sqliteBackuper).NewRestore(tempFilename)
if err != nil {
return err
}
for more := true; more; {
more, err = bck.Step(-1)
if err != nil {
return err
}
}
return bck.Finish()
})
return err
}
Как правильно восстановить базу sqlite с помощью Deserialize ? (не хочу обращаться к файловой системе)