en-US/about_Rivet.help.txt

TOPIC
    about_Rivet
 
SHORT DESCRIPTION
    Rivet is a database migration/change management/versioning tool inspired by
    Ruby on Rails' Migrations. It creates and applies migration scripts for SQL
    Server databases. Migration scripts describe changes to make to your
    database, e.g. add a table, add a column, remove an index, etc. Migrations
    scripts should get added to your version control system so they can be
    packaged and deployed with your application's code.
     
    Every Rivet migration is really a PowerShell script with a special name and
    that contains two migration functions. The migration filename should have
    the format `<timestamp>_<description>.ps1`. Timestamp is a unique number
    which increases every time a new migration is created. By default, Rivet
    uses a timestamp with second precision. `Description` is a short description
    of what the migration is doing.
 
    There should be two functions inside a migration, `Push-Migration` and
    `Pop-Migration`. The `Push-Migration` function should make changes to the
    database. The `Pop-Migration` function should reverse those changes, so you
    can put the database back in the state it was in before it was migrated.
         
    Once released, migrations are immutable and should not be changed. Rivet
    keeps track of which migrations have been applied against a database. If you
    change a migration once it has been applied to a database, it won't get
    re-applied because Rivet has already recorded that it was applied. Create a
    new migration to make the new change.
          
    All changes made in either `Push-Migration` or `Pop-Migration` are wrapped in
    a transaction. If any change fails to get made/applied, all changes are
    rolled back.
         
SEE ALSO
    about_Rivet_Configuration
    about_Rivet_Intellisense
    about_Rivet_Migrations
    about_Rivet_Plugins