RELEASE_NOTES.txt
# 0.8.1 (26 November 2016)
* Removing a custom operation that isn't part of core Rivet. # 0.8.0 ## Enhancements * Created `Merge-Migration` function for creating cumulative, roll up migrations. # 0.7.0 ## Enhancements * 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. # 0.6.1 ## Bug Fixes * `Rename-Column`, `Rename-DataType`, `Rename-Index`, and `Rename-Object` operations didn't properly quote schema and object names. # 0.6.0 ## Enhancements * 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 `Name` parameter. * 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 `Enable-ForeignKey` and `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. `rivet.ps1`'s `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. ## Bug Fixes * 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. # 0.5.1 ## Enhancements * Improving `WhatIf` support: some actions that shouldn't be conditional now ignore `WhatIf` flag. * 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. ## Bug Fixes * Get-Migration fails when run from Convert-Migration: it doesn't know the path to use to load migrations from. # 0.5.0 ## Enhancements * 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). * Renamed `Invoke-Query` operation to `Invoke-Ddl`. * Renamed `Rivet.Operations.RawQueryOperation` to `Rivet.Operations.RawDdlOperation`. * Moved `Rivet.Operations.Operation` object into `Rivet` namespace; so full type name is now `Rivet.Operation`. # 0.4.0 ## Enhancements * NOCHECK parameter has been added to `Add-ForeignKey` and `Add-CheckConstraint` operations * `Disable-CheckConstraint` and `Enable-CheckConstraint` functions have been added. * `Disable-ForeignKey` and `Enable-ForeignKey` functions have been added. ## Bug Fixes * Convert-Migration.ps1 generates incorrect SQL if a migration removes then re-adds a column. # 0.3.3 * Improved error message when failing to connect to SQL Server. * `Add-Index` operation now supports INCLUDE clause. # 0.3.2 ## Bug Fixes * `Invoke-SqlScript` fails when `NonQuery` switch is used. # 0.3.1 ## Enhancements * `Get-RivetConfig` is now a publicly exposed function. Use this method to parse a Rivet JSON configuration file. It returns a `Rivet.Configuration.Configuration` object. # 0.3.0 ## Enhancements * `Get-Migration` now returns a `Rivet.Operations.ScriptFileOperation` object instead of a `Rivet.Operations.RawQueryOperation` for `Invoke-SqlQuery` operations. ## Bug Fixes * `Invoke-SqlScript` ignoring `CommandTimeout` parameter. * `Invoke-SqlScript` didn't rollback migration if the script file was not found. * `Get-Migration` fails if a migration doesn't contain a `Push-Migration` or `Pop-Migration` function. * `Get-Migratoin` duplicates output of previous migration if a migration is missing a `Push-Migration` or `Pop-Migration` function. # 0.2.1 ## Bug Fixes * If a database has multipe target databases and no migrations directory, Rivet stops after the first target database. # 0.2.0 * 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). |