Esempio n. 1
0
// RestoreDBFromLatestBackup restores the latest backup to dbDir. walDir
// is where the write ahead logs are restored to and usually the same as dbDir.
func (b *BackupEngine) RestoreDBFromLatestBackup(dbDir, walDir string, ro *RestoreOptions) error {
	var cErr *C.char
	cDBDir := C.CString(dbDir)
	cWalDir := C.CString(walDir)
	defer func() {
		C.free(unsafe.Pointer(cDBDir))
		C.free(unsafe.Pointer(cWalDir))
	}()

	C.rocksdb_backup_engine_restore_db_from_latest_backup(b.c, cDBDir, cWalDir, ro.c, &cErr)
	return convertErr(cErr)
}
Esempio n. 2
0
// RestoreDBFromLatestBackup restores the latest backup to dbDir. walDir
// is where the write ahead logs are restored to and usually the same as dbDir.
func (b *BackupEngine) RestoreDBFromLatestBackup(dbDir, walDir string, ro *RestoreOptions) error {
	var cErr *C.char
	cDbDir := C.CString(dbDir)
	cWalDir := C.CString(walDir)
	defer func() {
		C.free(unsafe.Pointer(cDbDir))
		C.free(unsafe.Pointer(cWalDir))
	}()

	C.rocksdb_backup_engine_restore_db_from_latest_backup(b.c, cDbDir, cWalDir, ro.c, &cErr)
	if cErr != nil {
		defer C.free(unsafe.Pointer(cErr))
		return errors.New(C.GoString(cErr))
	}
	return nil
}
Esempio n. 3
0
// RestoreDBFromLatestBackup restores the latest backup to @db_dir. @wal_dir
// is where the write ahead logs are restored to and usually the same as @db_dir.
func (self *BackupEngine) RestoreDBFromLatestBackup(db_dir string, wal_dir string,
	opts *RestoreOptions) error {
	var cErr *C.char
	c_db_dir := C.CString(db_dir)
	c_wal_dir := C.CString(wal_dir)
	defer func() {
		C.free(unsafe.Pointer(c_db_dir))
		C.free(unsafe.Pointer(c_wal_dir))
	}()

	C.rocksdb_backup_engine_restore_db_from_latest_backup(self.c,
		c_db_dir, c_wal_dir, opts.c, &cErr)
	if cErr != nil {
		defer C.free(unsafe.Pointer(cErr))
		return errors.New(C.GoString(cErr))
	}

	return nil
}