This is an automated email from the ASF dual-hosted git repository.

abeizn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git

commit d9b99a69b221c5204e1681cc1e6071fa5fa71e19
Author: xgdyp <[email protected]>
AuthorDate: Fri Jul 15 17:22:50 2022 +0800

    fix: change table desgn in components commit_file_components commit_files
---
 models/domainlayer/code/commit.go                | 21 ++++++-------
 models/migrationscripts/updateSchemas20220711.go | 39 +++++++++---------------
 plugins/gitextractor/models/interface.go         |  2 +-
 plugins/gitextractor/parser/repo.go              | 25 ++++++++-------
 plugins/gitextractor/store/csv.go                |  2 +-
 plugins/gitextractor/store/database.go           |  2 +-
 6 files changed, 39 insertions(+), 52 deletions(-)

diff --git a/models/domainlayer/code/commit.go 
b/models/domainlayer/code/commit.go
index 77065b1e..1fc76bc0 100644
--- a/models/domainlayer/code/commit.go
+++ b/models/domainlayer/code/commit.go
@@ -46,11 +46,11 @@ func (Commit) TableName() string {
 
 type CommitFile struct {
        common.NoPKModel
-       CommitFileID string `gorm:"primaryKey;type:varchar(255)"`
-       CommitSha    string `gorm:"type:varchar(40)"`
-       FilePath     string `gorm:"type:varchar(255)"`
-       Additions    int
-       Deletions    int
+       ID        string `gorm:"primaryKey;type:varchar(255)"`
+       CommitSha string `gorm:"type:varchar(40)"`
+       FilePath  string `gorm:"type:varchar(255)"`
+       Additions int
+       Deletions int
 }
 
 func (CommitFile) TableName() string {
@@ -59,21 +59,20 @@ func (CommitFile) TableName() string {
 
 type Component struct {
        RepoId    string `gorm:"primaryKey;type:varchar(255)"`
-       Component string `gorm:"primaryKey;type:varchar(255)"`
+       Name      string `gorm:"type:varchar(255)"`
        PathRegex string `gorm:"type:varchar(255)"`
 }
 
 func (Component) TableName() string {
-       return "component"
+       return "components"
 }
 
-type FileComponent struct {
+type CommitFileComponent struct {
        common.NoPKModel
        CommitFileID string `gorm:"primaryKey;type:varchar(255)"`
-       RepoId       string `gorm:"primaryKey;type:varchar(255)"`
        Component    string `gorm:"type:varchar(255)"`
 }
 
-func (FileComponent) TableName() string {
-       return "file_component"
+func (CommitFileComponent) TableName() string {
+       return "commit_file_components"
 }
diff --git a/models/migrationscripts/updateSchemas20220711.go 
b/models/migrationscripts/updateSchemas20220711.go
index 4aa8c64b..15ad50f7 100644
--- a/models/migrationscripts/updateSchemas20220711.go
+++ b/models/migrationscripts/updateSchemas20220711.go
@@ -23,55 +23,44 @@ import (
        "gorm.io/gorm"
 )
 
-//type CodeComponent20220711 struct {
-//     ComponentId string `gorm:"primaryKey;type:varchar(255)"`
-//     PathRegex   string `gorm:"type:varchar(255)"`
-//}
-//
-//func (CodeComponent20220711) TableName() string {
-//     return "code_component_20220711"
-//}
-
 type Component struct {
-       RepoId    string `gorm:"primaryKey;type:varchar(255)"`
-       Component string `gorm:"primaryKey;type:varchar(255)"`
+       RepoId    string `gorm:"type:varchar(255)"`
+       Name      string `gorm:"primaryKey;type:varchar(255)"`
        PathRegex string `gorm:"type:varchar(255)"`
 }
 
 func (Component) TableName() string {
-       return "component"
+       return "components"
 }
 
 type CommitFile struct {
        common.NoPKModel
-       CommitFileID string `gorm:"primaryKey;type:varchar(255)"`
-       CommitSha    string `gorm:"type:varchar(40)"`
-       FilePath     string `gorm:"type:varchar(255)"`
-       Additions    int
-       Deletions    int
-       Component    string `gorm:"type:varchar(255)"`
+       ID        string `gorm:"primaryKey;type:varchar(255)"`
+       CommitSha string `gorm:"type:varchar(40)"`
+       FilePath  string `gorm:"type:varchar(255)"`
+       Additions int
+       Deletions int
 }
 
 func (CommitFile) TableName() string {
        return "commit_files"
 }
 
-type FileComponent struct {
+type CommitFileComponent struct {
        common.NoPKModel
        CommitFileID string `gorm:"primaryKey;type:varchar(255)"`
-       RepoId       string `gorm:"primaryKey;type:varchar(255)"`
        Component    string `gorm:"type:varchar(255)"`
 }
 
-func (FileComponent) TableName() string {
-       return "file_component"
+func (CommitFileComponent) TableName() string {
+       return "commit_file_components"
 }
 
 type updateSchemas20220711 struct{}
 
 func (*updateSchemas20220711) Up(ctx context.Context, db *gorm.DB) error {
 
-       err := db.Migrator().AutoMigrate(Component{}, CommitFile{}, 
FileComponent{})
+       err := db.Migrator().AutoMigrate(Component{}, CommitFile{}, 
CommitFileComponent{})
        if err != nil {
                return err
        }
@@ -80,9 +69,9 @@ func (*updateSchemas20220711) Up(ctx context.Context, db 
*gorm.DB) error {
 }
 
 func (*updateSchemas20220711) Version() uint64 {
-       return 202207151420
+       return 202207151644
 }
 
 func (*updateSchemas20220711) Name() string {
-       return "file_component table"
+       return "add commit_file_components components table,update commit_files 
table"
 }
diff --git a/plugins/gitextractor/models/interface.go 
b/plugins/gitextractor/models/interface.go
index a5ae3a86..b3e5ca6c 100644
--- a/plugins/gitextractor/models/interface.go
+++ b/plugins/gitextractor/models/interface.go
@@ -27,6 +27,6 @@ type Store interface {
        Refs(ref *code.Ref) error
        CommitFiles(file *code.CommitFile) error
        CommitParents(pp []*code.CommitParent) error
-       FileComponent(component *code.FileComponent) error
+       FileComponent(component *code.CommitFileComponent) error
        Close() error
 }
diff --git a/plugins/gitextractor/parser/repo.go 
b/plugins/gitextractor/parser/repo.go
index a796ca23..8807ded0 100644
--- a/plugins/gitextractor/parser/repo.go
+++ b/plugins/gitextractor/parser/repo.go
@@ -198,7 +198,7 @@ func (r *GitRepo) CollectCommits(subtaskCtx 
core.SubTaskContext) error {
        }
        componentMap := make(map[string]*regexp.Regexp)
        for _, component := range components {
-               componentMap[component.Component] = 
regexp.MustCompile(component.PathRegex)
+               componentMap[component.Name] = 
regexp.MustCompile(component.PathRegex)
        }
        odb, err := r.repo.Odb()
        if err != nil {
@@ -312,7 +312,7 @@ func (r *GitRepo) getDiffComparedToParent(commitSha string, 
commit *git.Commit,
 
 func (r *GitRepo) storeCommitFilesFromDiff(commitSha string, diff *git.Diff, 
componentMap map[string]*regexp.Regexp) error {
        var commitFile *code.CommitFile
-       var commitfileComponent *code.FileComponent
+       var commitFileComponent *code.CommitFileComponent
        var err error
        err = diff.ForEach(func(file git.DiffDelta, progress float64) (
                git.DiffForEachHunkCallback, error) {
@@ -327,20 +327,19 @@ func (r *GitRepo) storeCommitFilesFromDiff(commitSha 
string, diff *git.Diff, com
                commitFile = new(code.CommitFile)
                commitFile.CommitSha = commitSha
                commitFile.FilePath = file.NewFile.Path
-               commitFile.CommitFileID = commitSha + ":" + file.NewFile.Path
-               commitfileComponent = new(code.FileComponent)
+               commitFile.ID = commitSha + ":" + file.NewFile.Path
+               commitFileComponent = new(code.CommitFileComponent)
                for component, reg := range componentMap {
                        if reg.MatchString(commitFile.FilePath) {
-                               commitfileComponent.Component = component
+                               commitFileComponent.Component = component
                                break
                        }
                }
-               commitfileComponent.RepoId = r.id
-               commitfileComponent.CommitFileID = commitSha + ":" + 
file.NewFile.Path
-               //commitfileComponent.FilePath = file.NewFile.Path
-               //commitfileComponent.CommitSha = commitSha
-               if commitfileComponent.Component == "" {
-                       commitfileComponent.Component = "Default"
+               commitFileComponent.CommitFileID = commitSha + ":" + 
file.NewFile.Path
+               //commitFileComponent.FilePath = file.NewFile.Path
+               //commitFileComponent.CommitSha = commitSha
+               if commitFileComponent.Component == "" {
+                       commitFileComponent.Component = "Default"
                }
                return func(hunk git.DiffHunk) (git.DiffForEachLineCallback, 
error) {
                        return func(line git.DiffLine) error {
@@ -354,8 +353,8 @@ func (r *GitRepo) storeCommitFilesFromDiff(commitSha 
string, diff *git.Diff, com
                        }, nil
                }, nil
        }, git.DiffDetailLines)
-       if commitfileComponent != nil {
-               err = r.store.FileComponent(commitfileComponent)
+       if commitFileComponent != nil {
+               err = r.store.FileComponent(commitFileComponent)
                if err != nil {
                        r.logger.Error("FileComponent error:", err)
                }
diff --git a/plugins/gitextractor/store/csv.go 
b/plugins/gitextractor/store/csv.go
index bdf4205c..fa2b8845 100644
--- a/plugins/gitextractor/store/csv.go
+++ b/plugins/gitextractor/store/csv.go
@@ -132,7 +132,7 @@ func (c *CsvStore) Refs(ref *code.Ref) error {
 func (c *CsvStore) CommitFiles(file *code.CommitFile) error {
        return c.commitFileWriter.Write(file)
 }
-func (c *CsvStore) FileComponent(component *code.FileComponent) error {
+func (c *CsvStore) FileComponent(component *code.CommitFileComponent) error {
        return c.commitFileWriter.Write(component)
 }
 
diff --git a/plugins/gitextractor/store/database.go 
b/plugins/gitextractor/store/database.go
index 564433d5..8bca2147 100644
--- a/plugins/gitextractor/store/database.go
+++ b/plugins/gitextractor/store/database.go
@@ -91,7 +91,7 @@ func (d *Database) CommitFiles(file *code.CommitFile) error {
        return batch.Add(file)
 }
 
-func (d *Database) FileComponent(commitfile *code.FileComponent) error {
+func (d *Database) FileComponent(commitfile *code.CommitFileComponent) error {
        batch, err := d.driver.ForType(reflect.TypeOf(commitfile))
        if err != nil {
                return err

Reply via email to