workin on migr8 fix double def name
parent
fc08058f29
commit
9631d339b0
|
|
@ -9,7 +9,7 @@ function main() {
|
|||
local max="${2:-"}}}"}"
|
||||
shift
|
||||
shift
|
||||
go run main.go \
|
||||
go run cli.go \
|
||||
-do list \
|
||||
-db minio \
|
||||
-addr "https://s3-$region.amazonaws.com" \
|
||||
|
|
|
|||
|
|
@ -0,0 +1,73 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"local/args"
|
||||
"local/storage"
|
||||
"local/storage/resolve"
|
||||
"log"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
DBs [2]storage.DB
|
||||
Dry bool
|
||||
}
|
||||
|
||||
func (config Config) String() string {
|
||||
return fmt.Sprintf("{1:%T 2:%T Dry:%v}", config.DBs[0], config.DBs[1], config.Dry)
|
||||
}
|
||||
|
||||
func main() {
|
||||
c := config()
|
||||
resolve.DefaultNamespace = ""
|
||||
keys, err := c.DBs[0].List(nil)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
log.Println(c)
|
||||
for _, key := range keys {
|
||||
v, err := c.DBs[0].Get(key)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
if c.Dry {
|
||||
log.Printf("c.DBs[1].Set(%s, %s)", key, v)
|
||||
} else if err := c.DBs[1].Set(key, v); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func config() Config {
|
||||
as := args.NewArgSet()
|
||||
for i := range [2]int{} {
|
||||
s := fmt.Sprint(i + 1)
|
||||
as.Append(args.STRING, s+"usr", s+"'s user", "")
|
||||
as.Append(args.STRING, s+"pwd", s+"'s password", "")
|
||||
as.Append(args.STRING, s+"addr", s+"'s addr", "")
|
||||
as.Append(args.STRING, s+"type", s+"'s type", "")
|
||||
}
|
||||
as.Append(args.BOOL, "dry", "dry run", false)
|
||||
if err := as.Parse(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
stores := [2]storage.DB{}
|
||||
for i := range stores {
|
||||
var err error
|
||||
stores[i], err = storage.New(
|
||||
storage.TypeFromString(as.GetString(fmt.Sprint(i+1)+"type")),
|
||||
as.GetString(fmt.Sprint(i+1)+"addr"),
|
||||
as.GetString(fmt.Sprint(i+1)+"usr"),
|
||||
as.GetString(fmt.Sprint(i+1)+"pwd"),
|
||||
)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
return Config{
|
||||
DBs: stores,
|
||||
Dry: as.GetBool("dry"),
|
||||
}
|
||||
}
|
||||
2
db.go
2
db.go
|
|
@ -19,8 +19,6 @@ type DB interface {
|
|||
Close() error
|
||||
}
|
||||
|
||||
var DefaultNamespace = "namespace"
|
||||
|
||||
func New(key Type, params ...string) (db DB, err error) {
|
||||
defer func() {
|
||||
if i := recover(); i != nil {
|
||||
|
|
|
|||
2
map.go
2
map.go
|
|
@ -46,7 +46,7 @@ func (m *Map) List(ns []string, limits ...string) ([]string, error) {
|
|||
|
||||
keys := []string{}
|
||||
if _, ok := m.m[namespace]; !ok {
|
||||
namespace = DefaultNamespace
|
||||
namespace = resolve.DefaultNamespace
|
||||
}
|
||||
for k := range m.m[namespace] {
|
||||
if k >= limits[0] && k <= limits[1] {
|
||||
|
|
|
|||
6
mongo.go
6
mongo.go
|
|
@ -60,7 +60,7 @@ func (mg *Mongo) List(ns []string, limits ...string) ([]string, error) {
|
|||
limits = resolve.Limits(limits)
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
|
||||
defer cancel()
|
||||
collection := mg.db.Database(DefaultNamespace).Collection(namespace)
|
||||
collection := mg.db.Database(resolve.DefaultNamespace).Collection(namespace)
|
||||
filter := bson.M{"_id": bson.M{
|
||||
"$gte": limits[0],
|
||||
"$lte": limits[1],
|
||||
|
|
@ -92,7 +92,7 @@ func (mg *Mongo) Get(key string, ns ...string) ([]byte, error) {
|
|||
namespace := resolve.Namespace(ns)
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
|
||||
defer cancel()
|
||||
collection := mg.db.Database(DefaultNamespace).Collection(namespace)
|
||||
collection := mg.db.Database(resolve.DefaultNamespace).Collection(namespace)
|
||||
filter := bson.M{"_id": key}
|
||||
cursor, err := collection.Find(ctx, filter)
|
||||
if err != nil {
|
||||
|
|
@ -122,7 +122,7 @@ func (mg *Mongo) Set(key string, value []byte, ns ...string) error {
|
|||
namespace := resolve.Namespace(ns)
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
|
||||
defer cancel()
|
||||
collection := mg.db.Database(DefaultNamespace).Collection(namespace)
|
||||
collection := mg.db.Database(resolve.DefaultNamespace).Collection(namespace)
|
||||
filter := bson.M{"_id": key}
|
||||
document := bson.M{"value": value}
|
||||
_, err := collection.ReplaceOne(ctx, filter, document, options.Replace().SetUpsert(true))
|
||||
|
|
|
|||
Loading…
Reference in New Issue