mirror of
https://github.com/portainer/portainer.git
synced 2025-07-20 13:59:40 +02:00
47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
|
package migrator
|
||
|
|
||
|
import (
|
||
|
portainer "github.com/portainer/portainer/api"
|
||
|
)
|
||
|
|
||
|
func (m *Migrator) migrateDBVersionToDB70() error {
|
||
|
// foreach endpoint
|
||
|
endpoints, err := m.endpointService.Endpoints()
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
for _, endpoint := range endpoints {
|
||
|
// copy snapshots to new object
|
||
|
migrateLog.Info("- moving snapshots from endpoint to new object")
|
||
|
snapshot := portainer.Snapshot{EndpointID: endpoint.ID}
|
||
|
|
||
|
if len(endpoint.Snapshots) > 0 {
|
||
|
snapshot.Docker = &endpoint.Snapshots[len(endpoint.Snapshots)-1]
|
||
|
}
|
||
|
|
||
|
if len(endpoint.Kubernetes.Snapshots) > 0 {
|
||
|
snapshot.Kubernetes = &endpoint.Kubernetes.Snapshots[len(endpoint.Kubernetes.Snapshots)-1]
|
||
|
}
|
||
|
|
||
|
// save new object
|
||
|
err = m.snapshotService.Create(&snapshot)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
// set to nil old fields
|
||
|
migrateLog.Info("- deleting snapshot from endpoint")
|
||
|
endpoint.Snapshots = []portainer.DockerSnapshot{}
|
||
|
endpoint.Kubernetes.Snapshots = []portainer.KubernetesSnapshot{}
|
||
|
|
||
|
// update endpoint
|
||
|
err = m.endpointService.UpdateEndpoint(endpoint.ID, &endpoint)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
}
|