Files
tinyurl/pkg/db/db.go
C菌 94cd2ce218 up
2022-04-28 03:15:01 +08:00

40 lines
813 B
Go

package db
import (
"time"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
var (
DB *gorm.DB
)
type TinyUrl struct {
gorm.Model
LongUrl string `gorm:"size:200"`
ShortUrl string `gorm:"size:50"`
ExpireTime time.Time
Counter float64
}
type URLDetail struct {
URL string `json:"url"`
CreatedAt string `json:"created_at"`
ExpirationInMinutes time.Duration `json:"expiration_in_minutes"`
}
func InitDb() {
// 参考 https://github.com/go-sql-driver/mysql#dsn-data-source-name 获取详情
dsn := "tinyurl:tinyurl@tcp(42.192.36.14:3306)/tinyurl?charset=utf8mb4&parseTime=True&loc=Local"
var err error
DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic(err)
}
if err := DB.AutoMigrate(&TinyUrl{}); err != nil {
panic(err)
}
}