SyncDatabase syncs the schema of a database.
(ctx context.Context, req *connect.Request[v1pb.SyncDatabaseRequest])
| 370 | |
| 371 | // SyncDatabase syncs the schema of a database. |
| 372 | func (s *DatabaseService) SyncDatabase(ctx context.Context, req *connect.Request[v1pb.SyncDatabaseRequest]) (*connect.Response[v1pb.SyncDatabaseResponse], error) { |
| 373 | instanceID, databaseName, err := common.GetInstanceDatabaseID(req.Msg.Name) |
| 374 | if err != nil { |
| 375 | return nil, connect.NewError(connect.CodeInvalidArgument, errors.Wrapf(err, "failed to parse %q", req.Msg.Name)) |
| 376 | } |
| 377 | databaseMessage, err := s.store.GetDatabase(ctx, &store.FindDatabaseMessage{ |
| 378 | Workspace: common.GetWorkspaceIDFromContext(ctx), |
| 379 | InstanceID: &instanceID, |
| 380 | DatabaseName: &databaseName, |
| 381 | }) |
| 382 | if err != nil { |
| 383 | return nil, connect.NewError(connect.CodeInternal, errors.Wrapf(err, "failed to get database")) |
| 384 | } |
| 385 | if databaseMessage == nil { |
| 386 | return nil, connect.NewError(connect.CodeNotFound, errors.Errorf("database %q not found", req.Msg.Name)) |
| 387 | } |
| 388 | if databaseMessage.Deleted { |
| 389 | return nil, connect.NewError(connect.CodeNotFound, errors.Errorf("database %q was deleted", req.Msg.Name)) |
| 390 | } |
| 391 | if err := s.schemaSyncer.SyncDatabaseSchema(ctx, databaseMessage); err != nil { |
| 392 | return nil, err |
| 393 | } |
| 394 | return connect.NewResponse(&v1pb.SyncDatabaseResponse{}), nil |
| 395 | } |
| 396 | |
| 397 | // BatchSyncDatabases sync multiply database asynchronously. |
| 398 | func (s *DatabaseService) BatchSyncDatabases(ctx context.Context, req *connect.Request[v1pb.BatchSyncDatabasesRequest]) (*connect.Response[v1pb.BatchSyncDatabasesResponse], error) { |
nothing calls this directly
no test coverage detected