Add mysql support
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"CatsOfMastodonBotGo/internal/config"
|
||||
"CatsOfMastodonBotGo/internal/domain"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"gorm.io/driver/mysql"
|
||||
"gorm.io/driver/sqlite"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
@@ -11,17 +14,34 @@ import (
|
||||
var Gorm *gorm.DB
|
||||
|
||||
func Connect() (*gorm.DB, error) {
|
||||
_, err := os.ReadDir("data")
|
||||
if err != nil {
|
||||
err := os.Mkdir("data", 0755)
|
||||
var db *gorm.DB
|
||||
var err error = nil
|
||||
|
||||
if config.Config.DBEngine == "sqlite" {
|
||||
_, err = os.ReadDir("data")
|
||||
if err != nil {
|
||||
err = os.Mkdir("data", 0755)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
db, err = gorm.Open(sqlite.Open("data/caom.db"), &gorm.Config{})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
|
||||
config.Config.DBUser,
|
||||
config.Config.DBPassword,
|
||||
config.Config.DBHost,
|
||||
config.Config.DBPort,
|
||||
config.Config.DBName)
|
||||
db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
db, err := gorm.Open(sqlite.Open("data/caom.db"), &gorm.Config{})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Migrate the schema
|
||||
if err := db.AutoMigrate(&domain.Post{}, &domain.MediaAttachment{}, &domain.Account{}); err != nil {
|
||||
return nil, err
|
||||
|
Reference in New Issue
Block a user