// Package internal / /* **** @author Jonas Kaninda @license MIT License @Copyright © 2024 Jonas Kaninda **/ package internal import ( "fmt" "github.com/jkaninda/pg-bkup/pkg/logger" "github.com/spf13/cobra" "time" ) func StartMigration(cmd *cobra.Command) { intro() logger.Info("Starting database migration...") // Get DB config dbConf = initDbConfig(cmd) targetDbConf = initTargetDbConfig() // Defining the target database variables newDbConfig := dbConfig{} newDbConfig.dbHost = targetDbConf.targetDbHost newDbConfig.dbPort = targetDbConf.targetDbPort newDbConfig.dbName = targetDbConf.targetDbName newDbConfig.dbUserName = targetDbConf.targetDbUserName newDbConfig.dbPassword = targetDbConf.targetDbPassword // Generate file name backupFileName := fmt.Sprintf("%s_%s.sql", dbConf.dbName, time.Now().Format("20060102_150405")) conf := &RestoreConfig{} conf.file = backupFileName // Backup source Database BackupDatabase(dbConf, backupFileName, true) // Restore source database into target database logger.Info("Restoring [%s] database into [%s] database...", dbConf.dbName, targetDbConf.targetDbName) RestoreDatabase(&newDbConfig, conf) logger.Info("[%s] database has been restored into [%s] database", dbConf.dbName, targetDbConf.targetDbName) logger.Info("Database migration completed.") }