添加一些新指令
This commit is contained in:
parent
6613151288
commit
0d054c46fe
|
@ -0,0 +1,10 @@
|
||||||
|
package database_connect
|
||||||
|
|
||||||
|
import "gorm.io/gorm"
|
||||||
|
|
||||||
|
const DatabaseConnectKey = "hade:database_connect"
|
||||||
|
|
||||||
|
type Service interface {
|
||||||
|
LocalDatabaseConnect() *gorm.DB
|
||||||
|
AliDataBaseConnect() *gorm.DB
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
package database_connect
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/Superdanda/hade/framework"
|
||||||
|
)
|
||||||
|
|
||||||
|
type DatabaseConnectProvider struct {
|
||||||
|
framework.ServiceProvider
|
||||||
|
|
||||||
|
c framework.Container
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sp *DatabaseConnectProvider) Name() string {
|
||||||
|
return DatabaseConnectKey
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sp *DatabaseConnectProvider) Register(c framework.Container) framework.NewInstance {
|
||||||
|
return NewDatabaseConnectService
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sp *DatabaseConnectProvider) IsDefer() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sp *DatabaseConnectProvider) Params(c framework.Container) []interface{} {
|
||||||
|
return []interface{}{c}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sp *DatabaseConnectProvider) Boot(c framework.Container) error {
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
package database_connect
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/Superdanda/hade/framework"
|
||||||
|
"github.com/Superdanda/hade/framework/contract"
|
||||||
|
"github.com/Superdanda/hade/framework/provider/orm"
|
||||||
|
"gorm.io/gorm"
|
||||||
|
)
|
||||||
|
|
||||||
|
type DatabaseConnectService struct {
|
||||||
|
container framework.Container
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d DatabaseConnectService) LocalDatabaseConnect() *gorm.DB {
|
||||||
|
return getDatabaseConnectByYaml("database.local", d)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d DatabaseConnectService) AliDataBaseConnect() *gorm.DB {
|
||||||
|
return getDatabaseConnectByYaml("database.ali", d)
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewDatabaseConnectService(params ...interface{}) (interface{}, error) {
|
||||||
|
container := params[0].(framework.Container)
|
||||||
|
return &DatabaseConnectService{container: container}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func getDatabaseConnectByYaml(yamlPath string, d DatabaseConnectService) *gorm.DB {
|
||||||
|
ormService := d.container.MustMake(contract.ORMKey).(contract.ORMService)
|
||||||
|
db, err := ormService.GetDB(orm.WithConfigPath(yamlPath))
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(yamlPath + "数据库连接失败,请检查配置")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return db
|
||||||
|
}
|
Loading…
Reference in New Issue