提交 ec7a93ae 编写于 作者: fantasy_cs's avatar fantasy_cs

Merge branch 'master' of github.com:easysoft/zendata

......@@ -6,6 +6,7 @@ import (
"github.com/fatih/color"
"gorm.io/driver/mysql"
"gorm.io/gorm"
"gorm.io/gorm/logger"
"gorm.io/plugin/dbresolver"
"time"
)
......@@ -41,8 +42,6 @@ func GetDB() *gorm.DB {
err := DB.AutoMigrate(
&model.DataCategory1{},
&model.DataCategory2{},
&model.DataCity{},
)
if err != nil {
fmt.Printf(color.RedString("migrate models failed, error: %s.", err.Error()))
......@@ -62,7 +61,10 @@ func GormMySQL() *gorm.DB {
DontSupportRenameColumn: true, // 用 `change` 重命名列,MySQL 8 之前的数据库和 MariaDB 不支持重命名列
SkipInitializeWithVersion: false, // 根据版本自动配置
}
if db, err := gorm.Open(mysql.New(mysqlConfig)); err != nil {
if db, err := gorm.Open(mysql.New(mysqlConfig), &gorm.Config{
Logger: logger.Default.LogMode(logger.Info),
}); err != nil {
return nil
} else {
sqlDB, _ := db.DB()
......
......@@ -7,9 +7,7 @@ import (
"strings"
)
func GetExcelTable() (records []map[string]interface{}) {
filePath := "data/address/cn.v1.xlsx"
sheetName := "china"
func GetExcelTable(filePath, sheetName string) (records []map[string]interface{}) {
excel, err := excelize.OpenFile(filePath)
if err != nil {
......
......@@ -7,20 +7,16 @@ import (
)
func main() {
tableName := model.DataCity{}.TableName()
db := comm.GetDB()
truncateTableSql := fmt.Sprintf(comm.TruncateTable, tableName)
db.Exec(truncateTableSql)
filePath := "data/address/cn.v1.xlsx"
sheetName := "china"
createTableSql := fmt.Sprintf(comm.CreateTableTempl, tableName)
err := db.Exec(createTableSql).Error
if err != nil {
fmt.Printf("create table %s failed, err %s", tableName, err.Error())
return
}
db := comm.GetDB()
db.Exec(fmt.Sprintf(comm.TruncateTable, model.DataCity{}.TableName()))
db.AutoMigrate(
&model.DataCity{},
)
records := comm.GetExcelTable()
records := comm.GetExcelTable(filePath, sheetName)
for _, record := range records {
po := model.DataCity{
......
package main
import (
"fmt"
"github.com/easysoft/zendata/src/test/import/comm"
"github.com/easysoft/zendata/src/test/import/model"
stringUtils "github.com/easysoft/zendata/src/utils/string"
)
func main() {
filePath := "data/name/cn.family.v1.xlsx"
sheetName := "中文姓"
db := comm.GetDB()
db.Exec(fmt.Sprintf(comm.TruncateTable, model.DataChineseFamily{}.TableName()))
db.AutoMigrate(
&model.DataChineseFamily{},
)
records := comm.GetExcelTable(filePath, sheetName)
for _, record := range records {
po := model.DataChineseFamily{
Name: record["name"].(string),
Pinyin: record["pinyin"].(string),
Double: stringUtils.ParseBool(record["double"].(string)),
}
db.Save(&po)
}
}
package main
import (
"fmt"
"github.com/easysoft/zendata/src/test/import/comm"
"github.com/easysoft/zendata/src/test/import/model"
)
func main() {
filePath := "data/name/cn.given.v1.xlsx"
sheetName := "中文名"
db := comm.GetDB()
db.Exec(fmt.Sprintf(comm.TruncateTable, model.DataChineseGiven{}.TableName()))
db.AutoMigrate(
&model.DataChineseGiven{},
)
records := comm.GetExcelTable(filePath, sheetName)
for _, record := range records {
po := model.DataChineseGiven{
Name: record["name"].(string),
Pinyin: record["pinyin"].(string),
Sex: record["sex"].(string),
}
db.Save(&po)
}
}
package main
import (
"fmt"
"github.com/easysoft/zendata/src/test/import/comm"
"github.com/easysoft/zendata/src/test/import/model"
)
func main() {
filePath := "data/color/v1.xlsx"
sheetName := "color"
db := comm.GetDB()
db.Exec(fmt.Sprintf(comm.TruncateTable, model.DataColor{}.TableName()))
db.AutoMigrate(
&model.DataColor{},
)
records := comm.GetExcelTable(filePath, sheetName)
for _, record := range records {
po := model.DataColor{
Chinese: record["chinese"].(string),
English: record["english"].(string),
Hex: record["hex"].(string),
Rgb: record["rgb"].(string),
}
db.Save(&po)
}
}
package main
import (
"fmt"
"github.com/easysoft/zendata/src/test/import/comm"
"github.com/easysoft/zendata/src/test/import/model"
stringUtils "github.com/easysoft/zendata/src/utils/string"
)
func main() {
filePath := "data/country/v1.xlsx"
sheetName := "country"
db := comm.GetDB()
db.Exec(fmt.Sprintf(comm.TruncateTable, model.DataCountry{}.TableName()))
db.AutoMigrate(
&model.DataCountry{},
)
records := comm.GetExcelTable(filePath, sheetName)
for _, record := range records {
po := model.DataCountry{
ContinentId: stringUtils.ParseInt(record["continent_id"].(string)),
Continent: record["continent"].(string),
AreaCode: record["areacode"].(string),
EnglishShort: record["enshort"].(string),
EnglishFull: record["enfull"].(string),
ChineseShort: record["cnshort"].(string),
ChineseFull: record["cnfull"].(string),
}
db.Save(&po)
}
}
package main
import (
"fmt"
"github.com/easysoft/zendata/src/test/import/comm"
"github.com/easysoft/zendata/src/test/import/model"
)
func main() {
filePath := "data/name/en.family.v1.xlsx"
sheetName := "英文姓"
db := comm.GetDB()
db.Exec(fmt.Sprintf(comm.TruncateTable, model.DataEnglishFamily{}.TableName()))
db.AutoMigrate(
&model.DataEnglishFamily{},
)
records := comm.GetExcelTable(filePath, sheetName)
for _, record := range records {
po := model.DataEnglishFamily{
Name: record["name"].(string),
Index: record["index"].(string),
}
db.Save(&po)
}
}
package main
import (
"fmt"
"github.com/easysoft/zendata/src/test/import/comm"
"github.com/easysoft/zendata/src/test/import/model"
)
func main() {
filePath := "data/name/en.given.v1.xlsx"
sheetName := "英文名"
db := comm.GetDB()
db.Exec(fmt.Sprintf(comm.TruncateTable, model.DataEnglishGiven{}.TableName()))
db.AutoMigrate(
&model.DataEnglishGiven{},
)
records := comm.GetExcelTable(filePath, sheetName)
for _, record := range records {
po := model.DataEnglishGiven{
Name: record["name"].(string),
Index: record["index"].(string),
Sex: record["sex"].(string),
}
db.Save(&po)
}
}
......@@ -23,9 +23,7 @@ func main() {
tableName = "biz_" + strings.TrimLeft(tableName, "biz_")
db := comm.GetDB()
truncateTableSql := fmt.Sprintf(comm.TruncateTable, tableName)
db.Exec(truncateTableSql)
db.Exec(fmt.Sprintf(comm.TruncateTable, tableName))
createTableSql := fmt.Sprintf(comm.CreateTableTempl, tableName)
err := db.Exec(createTableSql).Error
......
......@@ -38,6 +38,7 @@ type BaseModel struct {
type DataCountry struct {
BaseModel
ContinentId int `json:"continentId"`
Continent string `json:"continent"`
AreaCode string `json:"areaCode"`
EnglishShort string `json:"englishShort"`
......@@ -81,7 +82,7 @@ type DataChineseFamily struct {
Name string `json:"name"`
Pinyin string `json:"pinyin"`
Double string `json:"double"`
Double bool `json:"double"`
}
func (DataChineseFamily) TableName() string {
......
......@@ -288,3 +288,14 @@ func ConvertYamlStringToMapFormat(bytes []byte) (ret string) {
//}
return
}
func ParseInt(str string) (ret int) {
ret, _ = strconv.Atoi(str)
return
}
func ParseBool(str string) (ret bool) {
ret, _ = strconv.ParseBool(str)
return
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册