(ctx context.Context, s *store.Store, instance *store.InstanceMessage, database *store.DatabaseMessage, sheetContent string)
| 1003 | } |
| 1004 | |
| 1005 | func diff(ctx context.Context, s *store.Store, instance *store.InstanceMessage, database *store.DatabaseMessage, sheetContent string) (string, error) { |
| 1006 | dbMetadata, err := s.GetDBSchema(ctx, &store.FindDBSchemaMessage{ |
| 1007 | Workspace: instance.Workspace, |
| 1008 | InstanceID: database.InstanceID, |
| 1009 | DatabaseName: database.DatabaseName, |
| 1010 | }) |
| 1011 | if err != nil { |
| 1012 | return "", errors.Wrapf(err, "failed to get database schema for database %q", database.DatabaseName) |
| 1013 | } |
| 1014 | if dbMetadata == nil { |
| 1015 | return "", errors.Errorf("database schema %q not found", database.DatabaseName) |
| 1016 | } |
| 1017 | |
| 1018 | migrationSQL, err := schema.SDLMigration(instance.Metadata.GetEngine(), sheetContent, dbMetadata) |
| 1019 | if err != nil { |
| 1020 | return "", errors.Wrapf(err, "failed to compute SDL migration") |
| 1021 | } |
| 1022 | |
| 1023 | return migrationSQL, nil |
| 1024 | } |
| 1025 | |
| 1026 | // computeNeedDump determines if schema dump is needed based on task type and statements. |
| 1027 | func computeNeedDump(taskType storepb.Task_Type, engine storepb.Engine, statement string) bool { |
no test coverage detected