0.8.1 (25 November 2016)
- Removing a custom operation that isn't part of core Rivet.
- Created Merge-Migration function for creating cumulative, roll up migrations.
- Fixed: Add-Index operation times out when creating new indexes on large table. Added a
Timeout parameter to control how long to wait for an operation to finish.
- Add-Index re-implemented as a C# cmdlet.
- Improving verbose output to be more recognizable and include query timings.
Convert-Migration.ps1 extra script now puts triggers, constraints, foreign keys, and types into separate files.
- New-Migration now increments timestamp if a migration with the same timestamp already exists instead of sleeping for half a second.
- Added format for
Rivet.Migration objects so they display nicely when running migrations.
- Adding Rivet about help topics.
- Created Add-RowGuidCol operation for adding the
rowguidcol property to a column.
- Created Remove-RowGuidCol operation for removing the
rowguidcol property from a column.
- Created Stop-Migration operation for preventing a migration from getting popped/reversed.
- Migrations missing Push-Migration/Pop-Migration functions are no longer allowed and will fail when pushed/popped.
- Migrations with empty Push-Migration/Pop-Migration functions are no longer allowed and will fail when pushed/popped.
- Obsoleted the parameter sets of the Remove-CheckConstraint,
Remove-DefaulConstraint, Remove-ForeignKey, Remove-Index, Remove-PrimaryKey, and Remove-UniqueKey operations that use an inferred constraint/index name. These operations now expect the name of the constraint/index to drop with the
- Improved object model so that customizing index/constraint names is easier.
- Added about_Rivet_Cookbook help topic to showing how to customize index/constraint names.
- Updated and improved the about_Rivet_Plugins help topic.
- Obsoleted the
Disable-ForeignKey operations. Use the Enable-Constraint and Disable-Constraint operations instead.
- Renamed the Enable-CheckConstraint operation to Enable-Constraint, with a backwards-compatible alias.
- Renamed the Disable-CheckConstraint operation to Disable-Constraint, with a backwards-compatible alias.
- You can now push, pop, or create multiple migrations at once (i.e.
Name parameter now accepts multiple names, IDs, or file names).
- Plug-ins now get passed a
Rivet.Migration object for the operation being processed.
- Rivet now supports writing custom operations.
- Results from Invoke-SqlScript operations cause silent error when formatted as a table.
- Path to rivet.json file not showing in an error message when using implicit path.
WhatIf support: some actions that shouldn't be conditional now ignore
- Invoke-SqlScript operation no longer splits script into batches, since that is now handled internally when executing all operations.
- Improving verbose output: adding a message for each already-applied migration.
- Get-Migration fails when run from Convert-Migration: it doesn't know the path to use to load migrations from.
- The Add-Schema operation is now idempotent.
- Removed all Write-Host output.
- Rivet now returns OperationResult objects for each query executed by an operation. Default format included (i.e. this output replaces the old Write-Host output).
Invoke-Query operation to Invoke-Ddl.
Rivet.Operations.Operation object into Rivet namespace; so full type name is now
- Convert-Migration.ps1 generates incorrect SQL if a migration removes then re-adds a column.
- Improved error message when failing to connect to SQL Server.
- Add-Index operation now supports INCLUDE clause.
- Get-RivetConfig is now a publicly exposed function. Use this method to parse a Rivet JSON configuration file. It returns a
- Get-Migration now returns a
Rivet.Operations.ScriptFileOperation object instead of a
- Invoke-SqlScript ignoring
- Invoke-SqlScript didn't rollback migration if the script file was not found.
- Get-Migration fails if a migration doesn't contain a
Get-Migratoin duplicates output of previous migration if a migration is missing a
- If a database has multipe target databases and no migrations directory, Rivet stops after the first target database.
- Databases are now created if they don't exist.
- A single database connection is now re-used when migrating multiple databases, instead of establishing a new connection for each database.
- A database's migrations can now be applied to multiple target databases via the new
TargetDatabases configuration option. See about_Rivet_Configuration for more information.
- Rivet now updates its internal objects using migrations (i.e. it is now self-migrating). It uses (and reserves) migration IDs below 01000000000000. If you have migrations with these IDs, you'll need to give them new IDs and update IDs in any rivet.Migrations table that uses that ID.
- Migration name maximum length increased to 241 characters (the theoretical maximum allowed by Windows).