You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by kl...@apache.org on 2022/10/21 02:14:11 UTC
[incubator-devlake] branch main updated: refactor: feishu migration scripts (#3511)
This is an automated email from the ASF dual-hosted git repository.
klesh 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 6555b426a refactor: feishu migration scripts (#3511)
6555b426a is described below
commit 6555b426a25dfe5f4f7c8fb794c63332894720b3
Author: mappjzc <zh...@merico.dev>
AuthorDate: Fri Oct 21 10:14:07 2022 +0800
refactor: feishu migration scripts (#3511)
Refactor Feishu MigrationScripts
Nddtfjiang <zh...@merico.dev>
---
plugins/feishu/impl/impl.go | 6 ++--
.../migrationscripts/20220714_add_init_tables.go | 32 +++++++++++++---------
plugins/feishu/models/migrationscripts/register.go | 8 ++----
3 files changed, 25 insertions(+), 21 deletions(-)
diff --git a/plugins/feishu/impl/impl.go b/plugins/feishu/impl/impl.go
index 20af9068c..09ab960d3 100644
--- a/plugins/feishu/impl/impl.go
+++ b/plugins/feishu/impl/impl.go
@@ -19,12 +19,12 @@ package impl
import (
"fmt"
+
"github.com/apache/incubator-devlake/errors"
"github.com/spf13/viper"
"gorm.io/gorm"
- "github.com/apache/incubator-devlake/migration"
"github.com/apache/incubator-devlake/plugins/core"
"github.com/apache/incubator-devlake/plugins/feishu/api"
"github.com/apache/incubator-devlake/plugins/feishu/models"
@@ -37,7 +37,7 @@ var _ core.PluginMeta = (*Feishu)(nil)
var _ core.PluginInit = (*Feishu)(nil)
var _ core.PluginTask = (*Feishu)(nil)
var _ core.PluginApi = (*Feishu)(nil)
-var _ core.Migratable = (*Feishu)(nil)
+var _ core.PluginMigration = (*Feishu)(nil)
var _ core.CloseablePluginTask = (*Feishu)(nil)
type Feishu struct{}
@@ -123,7 +123,7 @@ func (plugin Feishu) RootPkgPath() string {
return "github.com/apache/incubator-devlake/plugins/feishu"
}
-func (plugin Feishu) MigrationScripts() []migration.Script {
+func (plugin Feishu) MigrationScripts() []core.MigrationScript {
return migrationscripts.All()
}
diff --git a/plugins/feishu/models/migrationscripts/20220714_add_init_tables.go b/plugins/feishu/models/migrationscripts/20220714_add_init_tables.go
index ac441148d..ff67f1706 100644
--- a/plugins/feishu/models/migrationscripts/20220714_add_init_tables.go
+++ b/plugins/feishu/models/migrationscripts/20220714_add_init_tables.go
@@ -18,13 +18,12 @@ 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/plugins/core"
"github.com/apache/incubator-devlake/plugins/helper"
"github.com/apache/incubator-devlake/plugins/feishu/models/migrationscripts/archived"
- "gorm.io/gorm"
)
type addInitTables struct {
@@ -35,37 +34,44 @@ func (u *addInitTables) SetConfigGetter(config core.ConfigGetter) {
u.config = config
}
-func (u *addInitTables) Up(ctx context.Context, db *gorm.DB) errors.Error {
- err := db.Migrator().DropTable(
+func (u *addInitTables) Up(basicRes core.BasicRes) errors.Error {
+ db := basicRes.GetDal()
+
+ err := db.DropTables(
&archived.FeishuConnection{},
&archived.FeishuMeetingTopUserItem{},
)
if err != nil {
- return errors.Convert(err)
+ return err
}
- err = db.Migrator().CreateTable(
+
+ err = migrationhelper.AutoMigrateTables(
+ basicRes,
&archived.FeishuConnection{},
&archived.FeishuMeetingTopUserItem{},
)
if err != nil {
- return errors.Convert(err)
+ return err
}
- encodeKey := u.config.GetString(core.EncodeKeyEnvStr)
+ encodeKey := basicRes.GetConfig(core.EncodeKeyEnvStr)
connection := &archived.FeishuConnection{}
- connection.Endpoint = u.config.GetString(`FEISHU_ENDPOINT`)
- connection.AppId = u.config.GetString(`FEISHU_APPID`)
- connection.SecretKey = u.config.GetString(`FEISHU_APPSCRECT`)
+ connection.Endpoint = basicRes.GetConfig(`FEISHU_ENDPOINT`)
+ connection.AppId = basicRes.GetConfig(`FEISHU_APPID`)
+ connection.SecretKey = basicRes.GetConfig(`FEISHU_APPSCRECT`)
connection.Name = `Feishu`
if connection.Endpoint != `` && connection.AppId != `` && connection.SecretKey != `` && encodeKey != `` {
err = helper.UpdateEncryptFields(connection, func(plaintext string) (string, errors.Error) {
return core.Encrypt(encodeKey, plaintext)
})
if err != nil {
- return errors.Convert(err)
+ return err
}
// update from .env and save to db
- db.Create(connection)
+ err = db.CreateIfNotExist(connection)
+ if err != nil {
+ return err
+ }
}
return nil
}
diff --git a/plugins/feishu/models/migrationscripts/register.go b/plugins/feishu/models/migrationscripts/register.go
index c1365f7d4..285020ce4 100644
--- a/plugins/feishu/models/migrationscripts/register.go
+++ b/plugins/feishu/models/migrationscripts/register.go
@@ -17,13 +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{
+func All() []core.MigrationScript {
+ return []core.MigrationScript{
new(addInitTables),
}
}