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

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


The following commit(s) were added to refs/heads/main by this push:
     new a8bb6eef refactor: dora migrationscript (#3542)
a8bb6eef is described below

commit a8bb6eef30fcaa0d3b6bc4cf6e410b2bea63bcac
Author: mappjzc <[email protected]>
AuthorDate: Mon Oct 24 14:57:38 2022 +0800

    refactor: dora migrationscript (#3542)
    
    Refactor Dora MigrationScript
    
    Nddtfjiang <[email protected]>
---
 plugins/dora/impl/impl.go                          |  4 +-
 .../migrationscripts/20220829_add_init_tables.go   | 41 --------------------
 .../20220928_add_dora_benchmark.go                 | 44 +++++++++++-----------
 plugins/dora/models/migrationscripts/register.go   |  7 ++--
 4 files changed, 27 insertions(+), 69 deletions(-)

diff --git a/plugins/dora/impl/impl.go b/plugins/dora/impl/impl.go
index 66f52f6f..aa13a6c7 100644
--- a/plugins/dora/impl/impl.go
+++ b/plugins/dora/impl/impl.go
@@ -21,7 +21,6 @@ import (
        "fmt"
 
        "github.com/apache/incubator-devlake/errors"
-       "github.com/apache/incubator-devlake/migration"
        "github.com/apache/incubator-devlake/plugins/core"
        
"github.com/apache/incubator-devlake/plugins/dora/models/migrationscripts"
        "github.com/apache/incubator-devlake/plugins/dora/tasks"
@@ -34,6 +33,7 @@ var _ core.PluginMeta = (*Dora)(nil)
 var _ core.PluginInit = (*Dora)(nil)
 var _ core.PluginTask = (*Dora)(nil)
 var _ core.CloseablePluginTask = (*Dora)(nil)
+var _ core.PluginMigration = (*Dora)(nil)
 
 type Dora struct{}
 
@@ -80,7 +80,7 @@ func (plugin Dora) RootPkgPath() string {
        return "github.com/apache/incubator-devlake/plugins/dora"
 }
 
-func (plugin Dora) MigrationScripts() []migration.Script {
+func (plugin Dora) MigrationScripts() []core.MigrationScript {
        return migrationscripts.All()
 }
 
diff --git a/plugins/dora/models/migrationscripts/20220829_add_init_tables.go 
b/plugins/dora/models/migrationscripts/20220829_add_init_tables.go
deleted file mode 100644
index 84496384..00000000
--- a/plugins/dora/models/migrationscripts/20220829_add_init_tables.go
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package migrationscripts
-
-import (
-       "context"
-       "github.com/apache/incubator-devlake/errors"
-       "gorm.io/gorm"
-)
-
-type addInitTables struct{}
-
-func (u *addInitTables) Up(ctx context.Context, db *gorm.DB) errors.Error {
-       err := db.Migrator().AutoMigrate(
-       // TODO add you models
-       )
-       return errors.Convert(err)
-}
-
-func (*addInitTables) Version() uint64 {
-       return 20220829000001
-}
-
-func (*addInitTables) Name() string {
-       return "dora init schemas"
-}
diff --git 
a/plugins/dora/models/migrationscripts/20220928_add_dora_benchmark.go 
b/plugins/dora/models/migrationscripts/20220928_add_dora_benchmark.go
index 6ce33839..99907009 100644
--- a/plugins/dora/models/migrationscripts/20220928_add_dora_benchmark.go
+++ b/plugins/dora/models/migrationscripts/20220928_add_dora_benchmark.go
@@ -18,15 +18,15 @@ limitations under the License.
 package migrationscripts
 
 import (
-       "context"
        "github.com/apache/incubator-devlake/errors"
+       "github.com/apache/incubator-devlake/helpers/migrationhelper"
        "github.com/apache/incubator-devlake/models/migrationscripts/archived"
-       "gorm.io/gorm"
+       "github.com/apache/incubator-devlake/plugins/core"
 )
 
 type addDoraBenchmark struct{}
 
-type DoraBenchmark struct {
+type doraBenchmark struct {
        archived.Model
        Metric string `gorm:"type:varchar(255)"`
        Low    string `gorm:"type:varchar(255)"`
@@ -35,29 +35,29 @@ type DoraBenchmark struct {
        Elite  string `gorm:"type:varchar(255)"`
 }
 
-func (DoraBenchmark) TableName() string {
+func (doraBenchmark) TableName() string {
        return "dora_benchmarks"
 }
 
-func (u *addDoraBenchmark) Up(ctx context.Context, db *gorm.DB) errors.Error {
-
-       err := db.Migrator().AutoMigrate(
-               &DoraBenchmark{},
+func (u *addDoraBenchmark) Up(baseRes core.BasicRes) errors.Error {
+       db := baseRes.GetDal()
+       err := migrationhelper.AutoMigrateTables(
+               baseRes,
+               &doraBenchmark{},
        )
        if err != nil {
-               return errors.Convert(err)
+               return err
        }
+
        defer func() {
                if err != nil {
-                       if db.Migrator().HasTable(&DoraBenchmark{}) {
-                               err = db.Migrator().DropTable(&DoraBenchmark{})
-                               if err != nil {
-                                       return
-                               }
+                       err = db.DropTables(&doraBenchmark{})
+                       if err != nil {
+                               return
                        }
                }
        }()
-       doraBenchmarkDF := &DoraBenchmark{
+       doraBenchmarkDF := &doraBenchmark{
                Model: archived.Model{
                        ID: 1,
                },
@@ -67,11 +67,11 @@ func (u *addDoraBenchmark) Up(ctx context.Context, db 
*gorm.DB) errors.Error {
                High:   "Between once per week and once per month",
                Elite:  "On-demand",
        }
-       err = db.Create(doraBenchmarkDF).Error
+       err = db.Create(doraBenchmarkDF)
        if err != nil {
                return errors.Convert(err)
        }
-       doraBenchmarkLTC := &DoraBenchmark{
+       doraBenchmarkLTC := &doraBenchmark{
                Model: archived.Model{
                        ID: 2,
                },
@@ -81,11 +81,11 @@ func (u *addDoraBenchmark) Up(ctx context.Context, db 
*gorm.DB) errors.Error {
                High:   "Less than one week",
                Elite:  "Less than one hour",
        }
-       err = db.Create(doraBenchmarkLTC).Error
+       err = db.Create(doraBenchmarkLTC)
        if err != nil {
                return errors.Convert(err)
        }
-       doraBenchmarkTTS := &DoraBenchmark{
+       doraBenchmarkTTS := &doraBenchmark{
                Model: archived.Model{
                        ID: 3,
                },
@@ -95,11 +95,11 @@ func (u *addDoraBenchmark) Up(ctx context.Context, db 
*gorm.DB) errors.Error {
                High:   "Less than one day",
                Elite:  "Less than one hour",
        }
-       err = db.Create(doraBenchmarkTTS).Error
+       err = db.Create(doraBenchmarkTTS)
        if err != nil {
                return errors.Convert(err)
        }
-       doraBenchmarkCFR := &DoraBenchmark{
+       doraBenchmarkCFR := &doraBenchmark{
                Model: archived.Model{
                        ID: 4,
                },
@@ -109,7 +109,7 @@ func (u *addDoraBenchmark) Up(ctx context.Context, db 
*gorm.DB) errors.Error {
                High:   "16%-20%",
                Elite:  "0-15%",
        }
-       err = db.Create(doraBenchmarkCFR).Error
+       err = db.Create(doraBenchmarkCFR)
        if err != nil {
                return errors.Convert(err)
        }
diff --git a/plugins/dora/models/migrationscripts/register.go 
b/plugins/dora/models/migrationscripts/register.go
index 693f9a81..82fa4c4c 100644
--- a/plugins/dora/models/migrationscripts/register.go
+++ b/plugins/dora/models/migrationscripts/register.go
@@ -17,12 +17,11 @@ limitations under the License.
 
 package migrationscripts
 
-import "github.com/apache/incubator-devlake/migration"
+import "github.com/apache/incubator-devlake/plugins/core"
 
 // All return all the migration scripts
-func All() []migration.Script {
-       return []migration.Script{
-               new(addInitTables),
+func All() []core.MigrationScript {
+       return []core.MigrationScript{
                new(addDoraBenchmark),
        }
 }

Reply via email to