mirror of
https://github.com/StarFleetCPTN/GoMFT.git
synced 2026-09-13 18:10:53 +02:00
- Add support for multiple transfer configurations per job, allowing users to select one or more configurations. - Update job creation and editing forms to handle multiple configuration selections with checkboxes. - Enhance job processing logic to iterate through all associated configurations during execution. - Introduce database migrations to add necessary fields for storing multiple configuration IDs. - Update dashboard and history views to display configuration details for jobs. - Refactor related templates and handlers to accommodate the new multi-configuration functionality.
50 lines
1.5 KiB
Go
50 lines
1.5 KiB
Go
package migrations
|
|
|
|
import (
|
|
"github.com/go-gormigrate/gormigrate/v2"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// AddMultiConfigSupport adds support for multiple configurations per job
|
|
func AddMultiConfigSupport() *gormigrate.Migration {
|
|
return &gormigrate.Migration{
|
|
ID: "20250315_add_multi_config_support",
|
|
Migrate: func(tx *gorm.DB) error {
|
|
// Add config_ids column to jobs table
|
|
if err := tx.Exec("ALTER TABLE jobs ADD COLUMN config_ids TEXT").Error; err != nil {
|
|
return err
|
|
}
|
|
|
|
// Add config_id column to job_histories table
|
|
if err := tx.Exec("ALTER TABLE job_histories ADD COLUMN config_id INTEGER").Error; err != nil {
|
|
return err
|
|
}
|
|
|
|
// Add config_id column to file_metadata table
|
|
if err := tx.Exec("ALTER TABLE file_metadata ADD COLUMN config_id INTEGER").Error; err != nil {
|
|
return err
|
|
}
|
|
|
|
// Update existing jobs to set the config_ids field to match the current config_id
|
|
if err := tx.Exec("UPDATE jobs SET config_ids = config_id WHERE config_id > 0").Error; err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
},
|
|
Rollback: func(tx *gorm.DB) error {
|
|
// Drop the config_id columns from job_histories and file_metadata
|
|
if err := tx.Exec("ALTER TABLE job_histories DROP COLUMN config_id").Error; err != nil {
|
|
return err
|
|
}
|
|
|
|
if err := tx.Exec("ALTER TABLE file_metadata DROP COLUMN config_id").Error; err != nil {
|
|
return err
|
|
}
|
|
|
|
// Drop the config_ids column from jobs
|
|
return tx.Exec("ALTER TABLE jobs DROP COLUMN config_ids").Error
|
|
},
|
|
}
|
|
}
|