diff --git a/server/cmd/reearth-cms/main.go b/server/cmd/reearth-cms/main.go index a351581f5..385be8308 100644 --- a/server/cmd/reearth-cms/main.go +++ b/server/cmd/reearth-cms/main.go @@ -118,6 +118,8 @@ func main() { log.Fatalf("asset not found: %v", err) } + log.Infof("importing items from asset %s", aId.String()) + items, fields, err := itemsFromJson(frc, *format == "geojson", geometryFieldKey, *sp) if err != nil { log.Fatalf("failed to parse json: %v", err) @@ -164,7 +166,7 @@ func itemsFromJson(r io.Reader, isGeoJson bool, geoField *string, sp schema.Pack items := make([]interfaces.ImportItemParam, 0) fields := make([]interfaces.CreateFieldParam, 0) - for _, o := range jsonObjects { + for i, o := range jsonObjects { var iId *id.ItemID //idStr, _ := o["id"].(string) //iId = id.ItemIDFromRef(&idStr) @@ -251,7 +253,12 @@ func itemsFromJson(r io.Reader, isGeoJson bool, geoField *string, sp schema.Pack }) } items = append(items, item) + if i > 0 && i%1000 == 0 { + log.Infof("%d items prepared...", i) + } } + log.Infof("%d items prepared.", len(items)) + log.Infof("items preparation done.") return items, fields, nil } diff --git a/server/internal/usecase/interactor/item.go b/server/internal/usecase/interactor/item.go index 54f41e860..f72561778 100644 --- a/server/internal/usecase/interactor/item.go +++ b/server/internal/usecase/interactor/item.go @@ -445,11 +445,12 @@ func (i Item) Import(ctx context.Context, param interfaces.ImportItemsParam, ope if err != nil { return interfaces.ImportItemsResponse{}, err } + log.Infof("schema %s updated, %v new field created.", s.ID(), len(param.Fields)) } f := func(ctx context.Context) (interfaces.ImportItemsResponse, error) { - for _, itemParam := range param.Items { + for j, itemParam := range param.Items { var oldItem *item.Item if itemParam.ItemId != nil { @@ -586,15 +587,22 @@ func (i Item) Import(ctx context.Context, param interfaces.ImportItemsParam, ope } else { res.ItemUpdated() } + + if j > 0 && j%1000 == 0 { + log.Infof(" %d items created...", j) + } } + log.Infof(" %d items created.", len(param.Items)) if err := i.repos.Thread.SaveAll(ctx, threadsToSave); err != nil { return interfaces.ImportItemsResponse{}, err } + log.Infof(" %d threads saved.", len(threadsToSave)) if err := i.repos.Item.SaveAll(ctx, itemsToSave); err != nil { return interfaces.ImportItemsResponse{}, err } + log.Infof(" %d items saved.", len(itemsToSave)) return res.Into(), nil } @@ -675,7 +683,7 @@ func (i Item) Import2(ctx context.Context, aId id.AssetID, mId id.ModelID, forma } if err := i.gateways.TaskRunner.Run(ctx, taskPayload.Payload()); err != nil { - return fmt.Errorf("failed to trigger copy event: %w", err) + return fmt.Errorf("failed to trigger import event: %w", err) } log.Info("item: successfully triggered import event")