0.8.1 (25 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
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
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
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).