github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/state/migrations/doc.go (about) 1 // Copyright 2019 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 // Package migrations aims to create an intermediate state between state and the 5 // description package. One that aims to correctly model the dependencies 6 // required for migration. 7 // 8 // This package is in a state of transition, from the traditional way in the 9 // state package and the new way in this migrations package. It's likely to be 10 // a slow, considered move between the two and until all migrations are moved 11 // to here, there could be additional complexities. Once that is done, a new 12 // look to simplify any complexities which came up during the move is probably 13 // wise. 14 // 15 // Concept: 16 // 17 // The key concept is to remove code (complexities) from the state package that 18 // could be easily modelled somewhere else. 19 // 20 // Steps: 21 // - Create a new Migration that can perform the execution. 22 // - Create a source (src) and destination (dst) point of use interface 23 // - Migrate from source to destination models. 24 package migrations