128 lines
3.1 KiB
Go
Raw Normal View History

2024-10-14 13:49:16 +08:00
package main
// INFO 🐱 开发时测试 标迁移;
import (
model "catface/app/model"
"fmt"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
var DB *gorm.DB // 这种写法是方柏包外使用
// 自动迁移表
func autoMigrateTable() {
2024-10-16 11:33:32 +08:00
err := DB.AutoMigrate(&model.Animal{}, &model.AnmBreed{}, &model.AnmSterilzation{}, &model.AnmStatus{}, &model.AnmGender{})
2024-10-14 13:49:16 +08:00
if err != nil {
fmt.Println("autoMigrateTable error:", err)
}
}
func testInsertSterilzation() {
// 定义状态数据
statusesZH := []string{"不明", "未绝育", "已绝育"}
statusesEN := []string{"unknown", "unsterilized", "sterilized"}
for i := 0; i < len(statusesZH); i++ {
2024-10-16 11:33:32 +08:00
sterilzation := model.AnmSterilzation{
2024-10-14 13:49:16 +08:00
NameZh: statusesZH[i],
NameEn: statusesEN[i],
}
// 3.
tx := DB.Create(&sterilzation)
if tx.Error != nil {
fmt.Println("insert sterilzation error:", tx.Error)
}
}
}
func testInsertBreed() {
// INFO 为方便之后扩展,将 unknown 默认为 1
colorsZH := []string{"不明", "橘白", "奶牛", "白猫", "黑猫", "橘猫", "狸花", "狸白", "简州", "三花", "彩狸"}
colorsEN := []string{"unknown", "orange", "cow", "white", "black", "orangeCat", "tabby", "tabbyWhite", "jianzhong", "threeColor", "colorCat"}
for i := 0; i < len(colorsZH); i++ {
2024-10-16 11:33:32 +08:00
breed := model.AnmBreed{
2024-10-14 13:49:16 +08:00
BriefModel: model.BriefModel{
NameZh: colorsZH[i],
NameEn: colorsEN[i],
},
}
tx := DB.Create(&breed)
if tx.Error != nil {
fmt.Println("insert breed error:", tx.Error)
}
}
}
func testInsertAnmGender() {
// 定义性别数据
gendersZH := []string{"不明", "弟弟", "妹妹"}
gendersEN := []string{"unknown", "boy", "gril"}
for i := 0; i < len(gendersZH); i++ {
anmGender := model.AnmGender{
BriefModel: model.BriefModel{
NameZh: gendersZH[i],
NameEn: gendersEN[i],
},
}
tx := DB.Create(&anmGender)
if tx.Error != nil {
fmt.Println("insert gender error:", tx.Error)
}
}
}
func testInsertStatus() {
// 定义状态数据
statusesZH := []string{"不明", "在校", "毕业", "退学", "喵星"}
statusesEN := []string{"unknown", "inschool", "graduation", "missing", "catstar"}
for i := 0; i < len(statusesZH); i++ {
anmStatus := model.AnmStatus{
BriefModel: model.BriefModel{
NameZh: statusesZH[i],
NameEn: statusesEN[i],
},
}
tx := DB.Create(&anmStatus)
if tx.Error != nil {
fmt.Println("insertstatus error:", tx.Error)
}
}
}
func insertData() {
testInsertSterilzation()
fmt.Println("testInsertSterilzation success.")
testInsertBreed()
fmt.Println("testInsertBreed success.")
2024-10-16 11:33:32 +08:00
// testInsertStatus()
// fmt.Println("testInsertStatus success.")
2024-10-14 13:49:16 +08:00
2024-10-16 11:33:32 +08:00
// testInsertAnmGender()
// fmt.Println("testInsertAnmGender success.")
2024-10-14 13:49:16 +08:00
}
func main() {
// 1.
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
"root", "Havocantelope412#", "113.44.68.213", "3306", "hav_cats") // danger MySQL
fmt.Println("dsn:", dsn)
dbMySQL, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic(err)
}
DB = dbMySQL
autoMigrateTable()
fmt.Println("autoMigrateTable over.")
// insertData() // INFO 记得用完注释掉
}