MCPcopy Index your code
hub / github.com/NdoleStudio/httpsms / DedicatedDB

Method DedicatedDB

api/pkg/di/container.go:252–290  ·  view source on GitHub ↗

DedicatedDB creates an instance of gorm.DB if it has not been created already

()

Source from the content-addressed store, hash-verified

250
251// DedicatedDB creates an instance of gorm.DB if it has not been created already
252func (container *Container) DedicatedDB() (db *gorm.DB) {
253 container.logger.Debug(fmt.Sprintf("creating %T", db))
254 if container.dedicatedDB != nil {
255 return container.dedicatedDB
256 }
257
258 config := &gorm.Config{
259 TranslateError: true,
260 }
261 if isLocal() {
262 config = &gorm.Config{Logger: container.GormLogger()}
263 }
264
265 db, err := container.connect(os.Getenv("DATABASE_URL_DEDICATED"), config)
266 if err != nil {
267 container.logger.Fatal(err)
268 }
269
270 if err = db.Use(tracing.NewPlugin()); err != nil {
271 container.logger.Fatal(stacktrace.Propagate(err, "cannot use GORM tracing plugin"))
272 }
273
274 container.dedicatedDB = db
275 if os.Getenv("DATABASE_MIGRATION_SKIP") != "" {
276 container.logger.Debug(fmt.Sprintf("skipping migrations for [%T]", db))
277 return container.dedicatedDB
278 }
279
280 container.logger.Debug(fmt.Sprintf("Running migrations for dedicated [%T]", db))
281 if err = db.AutoMigrate(&entities.Heartbeat{}); err != nil {
282 container.logger.Fatal(stacktrace.Propagate(err, fmt.Sprintf("cannot migrate %T", &entities.Heartbeat{})))
283 }
284
285 if err = db.AutoMigrate(&entities.HeartbeatMonitor{}); err != nil {
286 container.logger.Fatal(stacktrace.Propagate(err, fmt.Sprintf("cannot migrate %T", &entities.HeartbeatMonitor{})))
287 }
288
289 return container.dedicatedDB
290}
291
292// MongoDB creates a *mongo.Database connection to MongoDB Atlas
293func (container *Container) MongoDB() *mongoDriver.Database {

Callers 2

HeartbeatRepositoryMethod · 0.95

Calls 5

GormLoggerMethod · 0.95
connectMethod · 0.95
isLocalFunction · 0.85
DebugMethod · 0.65
FatalMethod · 0.65

Tested by

no test coverage detected