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