package dbinit

import (
	"github.com/pingcap/dbaas/central/config"
	"github.com/pingcap/dbaas/central/db"
	"github.com/pingcap/dbaas/central/migrate"
	"gorm.io/gorm"

	_ "github.com/pingcap/dbaas/central/migrate/central_migrate_record"
)

func Initialize(cfg config.MysqlConfig, migration bool) (*gorm.DB, error) {
	handle, err := db.InitializeWithoutMigrate(cfg)
	if err != nil {
		return nil, err
	}
	if migration {
		if err := migrate.RunCentralMigrate(handle); err != nil {
			return nil, err
		}
	}
	return handle, nil
}
