migr8r is hard cause impls inconsistent

master
bel 2021-08-05 22:05:20 -06:00
parent f647664b54
commit 5aa0b90dc1
1 changed files with 21 additions and 9 deletions

View File

@ -10,29 +10,38 @@ import (
type Config struct { type Config struct {
DBs [2]storage.DB DBs [2]storage.DB
NSs [2]string
Dry bool Dry bool
args *args.ArgSet
} }
func (config Config) String() string { func (config Config) String() string {
return fmt.Sprintf("{1:%T 2:%T Dry:%v}", config.DBs[0], config.DBs[1], config.Dry) return fmt.Sprintf(
"{1:%T 1NS:%s 2:%T 2NS:%s Dry:%v}",
config.DBs[0],
config.NSs[0],
config.DBs[1],
config.NSs[1],
config.Dry,
)
} }
func main() { func main() {
c := config() c := config()
resolve.DefaultNamespace = "" resolve.DefaultNamespace = ""
keys, err := c.DBs[0].List(nil) keys, err := c.DBs[0].List([]string{c.NSs[0]})
if err != nil { if err != nil {
panic(err) panic(err)
} }
log.Println(c) log.Println(c)
for _, key := range keys { for _, key := range keys {
v, err := c.DBs[0].Get(key) v, err := c.DBs[0].Get(key, c.NSs[0])
if err != nil { if err != nil {
panic(err) panic(err)
} }
if c.Dry { if c.Dry {
log.Printf("c.DBs[1].Set(%s, %s)", key, v) log.Printf("%T@%s Set(%s, %s, %s)", c.DBs[1], c.args.GetString("2addr"), key, v, c.NSs[1])
} else if err := c.DBs[1].Set(key, v); err != nil { } else if err := c.DBs[1].Set(key, v, c.NSs[1]); err != nil {
panic(err) panic(err)
} }
} }
@ -46,6 +55,7 @@ func config() Config {
as.Append(args.STRING, s+"pwd", s+"'s password", "") as.Append(args.STRING, s+"pwd", s+"'s password", "")
as.Append(args.STRING, s+"addr", s+"'s addr", "") as.Append(args.STRING, s+"addr", s+"'s addr", "")
as.Append(args.STRING, s+"type", s+"'s type", "") as.Append(args.STRING, s+"type", s+"'s type", "")
as.Append(args.STRING, s+"ns", s+"'s namespace", resolve.DefaultNamespace)
} }
as.Append(args.BOOL, "dry", "dry run", false) as.Append(args.BOOL, "dry", "dry run", false)
if err := as.Parse(); err != nil { if err := as.Parse(); err != nil {
@ -69,5 +79,7 @@ func config() Config {
return Config{ return Config{
DBs: stores, DBs: stores,
Dry: as.GetBool("dry"), Dry: as.GetBool("dry"),
NSs: [2]string{as.GetString("1ns"), as.GetString("2ns")},
args: as,
} }
} }