mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-23 06:45:43 +00:00
initial commit
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/hafizhproject45/Golang-Boilerplate.git/internal/config"
|
||||
"github.com/hafizhproject45/Golang-Boilerplate.git/internal/utils"
|
||||
|
||||
"gorm.io/driver/postgres"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/logger"
|
||||
)
|
||||
|
||||
func Connect(dbHost, dbName string) *gorm.DB {
|
||||
dsn := fmt.Sprintf(
|
||||
"host=%s user=%s password=%s dbname=%s port=%d sslmode=disable TimeZone=Asia/Shanghai",
|
||||
dbHost, config.DBUser, config.DBPassword, dbName, config.DBPort,
|
||||
)
|
||||
|
||||
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{
|
||||
Logger: logger.Default.LogMode(logger.Info),
|
||||
SkipDefaultTransaction: true,
|
||||
PrepareStmt: true,
|
||||
TranslateError: true,
|
||||
})
|
||||
if err != nil {
|
||||
utils.Log.Errorf("Failed to connect to database: %+v", err)
|
||||
}
|
||||
|
||||
sqlDB, errDB := db.DB()
|
||||
if errDB != nil {
|
||||
utils.Log.Errorf("Failed to connect to database: %+v", errDB)
|
||||
}
|
||||
|
||||
// Config connection pooling
|
||||
sqlDB.SetMaxIdleConns(10)
|
||||
sqlDB.SetMaxOpenConns(100)
|
||||
sqlDB.SetConnMaxLifetime(60 * time.Minute)
|
||||
|
||||
return db
|
||||
}
|
||||
Executable
+1
@@ -0,0 +1 @@
|
||||
CREATE DATABASE IF NOT EXISTS db_lti_erp;
|
||||
@@ -0,0 +1 @@
|
||||
DROP TABLE IF EXISTS users;
|
||||
@@ -0,0 +1,8 @@
|
||||
-- Users
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
name VARCHAR,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
deleted_at TIMESTAMPTZ
|
||||
);
|
||||
@@ -0,0 +1,30 @@
|
||||
package seed
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
mUser "github.com/hafizhproject45/Golang-Boilerplate.git/internal/modules/users/models"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func Run(db *gorm.DB) error {
|
||||
return db.Transaction(func(tx *gorm.DB) error {
|
||||
// pw, err := secure.Hash("asdasdasd", nil)
|
||||
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
|
||||
// ===== Users (user) =====
|
||||
user := mUser.User{
|
||||
Name: "Super Admin",
|
||||
}
|
||||
if err := tx.Where("email = ?", user.Id).FirstOrCreate(&user).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
fmt.Println("✅ Seeder successfully")
|
||||
return nil
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user