From fb61ba3d14e32930862ef21d79c239d2de2371aa Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Tue, 6 Jul 2021 16:58:27 +0200 Subject: [PATCH] Also migrate domains by reparenting them to their migrated provider --- storage/leveldb/updates-from-0.go | 36 ++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/storage/leveldb/updates-from-0.go b/storage/leveldb/updates-from-0.go index f8a0419..a40a7a8 100644 --- a/storage/leveldb/updates-from-0.go +++ b/storage/leveldb/updates-from-0.go @@ -36,6 +36,20 @@ import ( "log" ) +func migrateFrom0(s *LevelDBStorage) (err error) { + err = migrateFrom0_sourcesProvider(s) + if err != nil { + return + } + + err = migrateFrom0_reparentDomains(s) + if err != nil { + return + } + + return +} + type sourceMeta struct { Type string `json:"_srctype"` Id int64 `json:"_id"` @@ -43,7 +57,7 @@ type sourceMeta struct { Comment string `json:"_comment,omitempty"` } -func migrateFrom0(s *LevelDBStorage) (err error) { +func migrateFrom0_sourcesProvider(s *LevelDBStorage) (err error) { iter := s.search("source-") defer iter.Release() @@ -114,3 +128,23 @@ func migrateFrom0(s *LevelDBStorage) (err error) { return } + +func migrateFrom0_reparentDomains(s *LevelDBStorage) (err error) { + iter := s.search("domain-") + defer iter.Release() + + for iter.Next() { + domstr := iter.Value() + + domstr = bytes.Replace(domstr, []byte("\"id_source\":"), []byte("\"id_provider\":"), 1) + + log.Printf("Migrating v0 -> v1: %s...", iter.Key()) + + err = s.db.Put(iter.Key(), domstr, nil) + if err != nil { + return + } + } + + return +}