This is an automated email from the ASF dual-hosted git repository. narro pushed a commit to branch #8452 in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
commit a223bf621246835cd39a08642d0a47ca372fbdc6 Author: narro wizard <[email protected]> AuthorDate: Tue May 27 07:02:53 2025 +0000 refactor(codequality): extend field size for CQ and SonarQube - Increase CqFileMetrics.FileName to varchar(2000) - Increase CqProject.Name to varchar(2000) - Increase CqFileMetrics.Id to varchar(3000) - Increase SonarqubeFileMetrics.FileMetricsKey to varchar(3000) - Increase SonarqubeFileMetrics.FileName to varchar(2000) These changes accommodate longer file names and identifiers in modern projects. #8452 --- .../domainlayer/codequality/cq_file_metrics.go | 9 ++--- .../models/domainlayer/codequality/cq_projects.go | 2 +- .../20250527_extend_field_size_for_cq.go} | 37 ++++++++++---------- backend/core/models/migrationscripts/register.go | 1 + .../20250527_extend_field_size.go} | 39 +++++++++++----------- .../sonarqube/models/migrationscripts/register.go | 1 + .../sonarqube/models/sonarqube_file_metrics.go | 4 +-- 7 files changed, 49 insertions(+), 44 deletions(-) diff --git a/backend/core/models/domainlayer/codequality/cq_file_metrics.go b/backend/core/models/domainlayer/codequality/cq_file_metrics.go index c83a79813..293d1a7ea 100644 --- a/backend/core/models/domainlayer/codequality/cq_file_metrics.go +++ b/backend/core/models/domainlayer/codequality/cq_file_metrics.go @@ -18,13 +18,14 @@ limitations under the License. package codequality import ( - "github.com/apache/incubator-devlake/core/models/domainlayer" + "github.com/apache/incubator-devlake/core/models/common" ) type CqFileMetrics struct { - domainlayer.DomainEntity - ProjectKey string `gorm:"index;type:varchar(255)"` //domain project key - FileName string `gorm:"type:varchar(255)"` + common.NoPKModel + Id string `json:"id" gorm:"primaryKey;type:varchar(3000);comment:This key is generated based on details from the original plugin"` // format: <Plugin>:<Entity>:<PK0>:<PK1> + ProjectKey string `gorm:"index;type:varchar(255)"` //domain project key + FileName string `gorm:"type:varchar(2000)"` FilePath string FileLanguage string `gorm:"type:varchar(20)"` CodeSmells int diff --git a/backend/core/models/domainlayer/codequality/cq_projects.go b/backend/core/models/domainlayer/codequality/cq_projects.go index fe80dd1bb..d0f0be4d3 100644 --- a/backend/core/models/domainlayer/codequality/cq_projects.go +++ b/backend/core/models/domainlayer/codequality/cq_projects.go @@ -27,7 +27,7 @@ var _ plugin.Scope = (*CqProject)(nil) type CqProject struct { domainlayer.DomainEntityExtended - Name string `gorm:"type:varchar(255)"` + Name string `gorm:"type:varchar(2000)"` Qualifier string `gorm:"type:varchar(255)"` Visibility string `gorm:"type:varchar(64)"` LastAnalysisDate *common.Iso8601Time diff --git a/backend/core/models/domainlayer/codequality/cq_projects.go b/backend/core/models/migrationscripts/20250527_extend_field_size_for_cq.go similarity index 51% copy from backend/core/models/domainlayer/codequality/cq_projects.go copy to backend/core/models/migrationscripts/20250527_extend_field_size_for_cq.go index fe80dd1bb..838eb6010 100644 --- a/backend/core/models/domainlayer/codequality/cq_projects.go +++ b/backend/core/models/migrationscripts/20250527_extend_field_size_for_cq.go @@ -15,33 +15,34 @@ See the License for the specific language governing permissions and limitations under the License. */ -package codequality +package migrationscripts import ( - "github.com/apache/incubator-devlake/core/models/common" - "github.com/apache/incubator-devlake/core/models/domainlayer" + "github.com/apache/incubator-devlake/core/context" + "github.com/apache/incubator-devlake/core/errors" "github.com/apache/incubator-devlake/core/plugin" ) -var _ plugin.Scope = (*CqProject)(nil) +var _ plugin.MigrationScript = (*extendFieldSizeForCq)(nil) -type CqProject struct { - domainlayer.DomainEntityExtended - Name string `gorm:"type:varchar(255)"` - Qualifier string `gorm:"type:varchar(255)"` - Visibility string `gorm:"type:varchar(64)"` - LastAnalysisDate *common.Iso8601Time - CommitSha string `gorm:"type:varchar(128)"` -} +type extendFieldSizeForCq struct{} -func (CqProject) TableName() string { - return "cq_projects" +func (script *extendFieldSizeForCq) Up(basicRes context.BasicRes) errors.Error { + err := basicRes.GetDal().ModifyColumnType("cq_projects", "name", "varchar(2000)") + if err != nil { + return err + } + err = basicRes.GetDal().ModifyColumnType("cq_file_metrics", "file_name", "varchar(2000)") + if err != nil { + return err + } + return basicRes.GetDal().ModifyColumnType("cq_file_metrics", "id", "varchar(3000)") } -func (s *CqProject) ScopeId() string { - return s.Id +func (*extendFieldSizeForCq) Version() uint64 { + return 20250527000000 } -func (s *CqProject) ScopeName() string { - return s.Name +func (*extendFieldSizeForCq) Name() string { + return "extend field size for cq" } diff --git a/backend/core/models/migrationscripts/register.go b/backend/core/models/migrationscripts/register.go index 191d0817b..fd90c8fd2 100644 --- a/backend/core/models/migrationscripts/register.go +++ b/backend/core/models/migrationscripts/register.go @@ -137,5 +137,6 @@ func All() []plugin.MigrationScript { new(addDueDateToIssues), new(createQaTables), new(increaseCqIssueComponentLength), + new(extendFieldSizeForCq), } } diff --git a/backend/core/models/domainlayer/codequality/cq_projects.go b/backend/plugins/sonarqube/models/migrationscripts/20250527_extend_field_size.go similarity index 52% copy from backend/core/models/domainlayer/codequality/cq_projects.go copy to backend/plugins/sonarqube/models/migrationscripts/20250527_extend_field_size.go index fe80dd1bb..502a894cd 100644 --- a/backend/core/models/domainlayer/codequality/cq_projects.go +++ b/backend/plugins/sonarqube/models/migrationscripts/20250527_extend_field_size.go @@ -15,33 +15,34 @@ See the License for the specific language governing permissions and limitations under the License. */ -package codequality +package migrationscripts import ( - "github.com/apache/incubator-devlake/core/models/common" - "github.com/apache/incubator-devlake/core/models/domainlayer" + "github.com/apache/incubator-devlake/core/context" + "github.com/apache/incubator-devlake/core/errors" "github.com/apache/incubator-devlake/core/plugin" ) -var _ plugin.Scope = (*CqProject)(nil) +var _ plugin.MigrationScript = (*extendSonarqubeFieldSize)(nil) -type CqProject struct { - domainlayer.DomainEntityExtended - Name string `gorm:"type:varchar(255)"` - Qualifier string `gorm:"type:varchar(255)"` - Visibility string `gorm:"type:varchar(64)"` - LastAnalysisDate *common.Iso8601Time - CommitSha string `gorm:"type:varchar(128)"` -} +type extendSonarqubeFieldSize struct{} -func (CqProject) TableName() string { - return "cq_projects" +func (script *extendSonarqubeFieldSize) Up(basicRes context.BasicRes) errors.Error { + db := basicRes.GetDal() + + err := db.ModifyColumnType("_tool_sonarqube_file_metrics", "file_metrics_key", "varchar(3000)") + if err != nil { + return err + } + + err = db.ModifyColumnType("_tool_sonarqube_file_metrics", "file_name", "varchar(2000)") + return err } -func (s *CqProject) ScopeId() string { - return s.Id +func (*extendSonarqubeFieldSize) Version() uint64 { + return 20250527000000 } -func (s *CqProject) ScopeName() string { - return s.Name -} +func (*extendSonarqubeFieldSize) Name() string { + return "extend field size for sonarqube file metrics" +} \ No newline at end of file diff --git a/backend/plugins/sonarqube/models/migrationscripts/register.go b/backend/plugins/sonarqube/models/migrationscripts/register.go index 849f11248..7c48de842 100644 --- a/backend/plugins/sonarqube/models/migrationscripts/register.go +++ b/backend/plugins/sonarqube/models/migrationscripts/register.go @@ -38,5 +38,6 @@ func All() []plugin.MigrationScript { new(increaseProjectKeyLength), new(addOrgToConn), new(addIssueImpacts), + new(extendSonarqubeFieldSize), } } diff --git a/backend/plugins/sonarqube/models/sonarqube_file_metrics.go b/backend/plugins/sonarqube/models/sonarqube_file_metrics.go index a7acef9c1..c064e2679 100644 --- a/backend/plugins/sonarqube/models/sonarqube_file_metrics.go +++ b/backend/plugins/sonarqube/models/sonarqube_file_metrics.go @@ -23,9 +23,9 @@ import ( type SonarqubeFileMetrics struct { ConnectionId uint64 `gorm:"primaryKey"` - FileMetricsKey string `gorm:"primaryKey;type:varchar(500)"` + FileMetricsKey string `gorm:"primaryKey;type:varchar(3000)"` ProjectKey string `gorm:"index"` - FileName string + FileName string `gorm:"type:varchar(2000)"` FilePath string FileLanguage string CodeSmells int
