Releases: jbogard/Respawn
v7.0.0
What's Changed
- Bump Npgsql from 6.0.2 to 8.0.3 in /Respawn.DatabaseTests by @dependabot[bot] in #138
- Update Microsoft.Data.SqlClient to 5.1.4 to address CVE-2023-36414 by @jellebuitenhuisis in #142
- Add support for custom delete statements by @cervengoc in #137
- Add ConfigureAwait(false) to async method calls, to prevent potential… by @Insire in #136
- support database names containing special characters by @alexmo16 in #144
- SqlServer reseed fix for objects with special character in name by @flarestudiopl in #149
- Add IBM DB2 support by @MD-V in #145
- Remove the
Microsoft.Data.SqlClientdependency by @0xced in #153 - Infer the DbAdapter from the DbConnection by @0xced in #151
- Added an IDbAdapter for Snowflake by @SaiSDET in #154
- Fix FormatDeleteStatement being ignored by @0xced in #155
- Add Sqlite support with SqliteDbAdapter implementation by @snowfrogdev in #156
- Fixing build by @jbogard in #160
- Removing docker compose; .NET 10 tests by @jbogard in #161
New Contributors
- @jellebuitenhuisis made their first contribution in #142
- @cervengoc made their first contribution in #137
- @Insire made their first contribution in #136
- @alexmo16 made their first contribution in #144
- @flarestudiopl made their first contribution in #149
- @MD-V made their first contribution in #145
- @0xced made their first contribution in #153
- @SaiSDET made their first contribution in #154
- @snowfrogdev made their first contribution in #156
Full Changelog: v6.2.1...v7.0.0
v6.2.1
v6.2.0
v6.1.0
What's Changed
- Fixed ERROR: operator does not exist: information_schema.sql_identifier + unknown by @gabrielheming in #105
- Fix string concatenation when build oracle table/relation command text by @MingMZ in #114
- Better exception when database is empty/no tables found by @jbogard in #115
- Bump Oracle.ManagedDataAccess.Core from 3.21.50 to 3.21.90 in /Respawn.DatabaseTests by @dependabot in #119
- Only allowing SQL adapter for the overload that takes a connection st… by @jbogard in #123
New Contributors
- @gabrielheming made their first contribution in #105
- @MingMZ made their first contribution in #114
- @dependabot made their first contribution in #119
Full Changelog: v6.0.0...v6.1.0
v6.0.0
What's Changed
- Fix / Add support for Azure SQL Temporal Tables by @gebirgslok in #94
- fix: Turn on system-versioning in finally block by @anthony-keller in #102
- Fix naming problems by @jbogard in #103
New Contributors
- @gebirgslok made their first contribution in #94
- @anthony-keller made their first contribution in #102
Full Changelog: v5.0.1...v6.0.0
Migration Guide
This release contains breaking changes:
Checkpointclass renamed toRespawnerCheckpointoptions moved toRespawnerOptions- Instantiation broken in two steps -
Respawner.CreateAsynctakes a connection and options object and returns aRespawnerwith SQL initialized Resetmethod renamed toResetAsyncto avoid async confusion
5.0.0
As part of this release we had 12 issues closed.
Improvements/Features
- #91 Adding support for including and excluding schemas with tables across all databases
- #90 .NET Standard 2.1 and .NET 6
- #88 Keyword not supported: 'port' not support for PostgreSQL
- #85 Fix issue #84 "Reset fails in MSSQL when using temporal tables and reserved words for table names"
- #84 Reset fails in MSSQL when using temporal tables and reserved words for table names
- #82 Fix issue #52 "Oracle doesn't query for relationships properly"
- #81 Throw InvalidOperationException When Ignore only one table
- #79 Add BuildReseedSql for mysql
- #77 FK uniqueness issues
- #76 Add sequence reset for Postgres.
- #73 Reset fails in SQL Server when temporal table or history table are in non-default schemas
- #70 Checkpoint tries to truncate internal Postgres tables
Breaking changes
TablesToIgnore and TablesToInclude changed from type string to Table
In order to support ignoring/including both schemas and tables, the TablesToIgnore and TablesToInclude properties are now of type Table:
public class Checkpoint
{
- public string[] TablesToIgnore { get; init; } = Array.Empty<string>();
- public string[] TablesToInclude { get; init; } = Array.Empty<string>();
+ public Table[] TablesToIgnore { get; init; } = Array.Empty<Table>();
+ public Table[] TablesToInclude { get; init; } = Array.Empty<Table>();For existing code that still needs to ignore/include tables regardless of the schema, the Table object has an implicit conversion operator from string. Specify the array type to activate the conversion:
var checkpoint = new Checkpoint
{
TablesToIgnore = new Table[]
{
"Foo",
"Bar"
}
};Or specify the schema by instantiating a Table object:
var checkpoint = new Checkpoint
{
TablesToIgnore = new[]
{
new Table("dbo", "Foo"),
new Table("dbo", "Bar")
}
};Targeting only netstandard2.1
Respawn only targets netstandard2.1 and above (.NET 5, 6, etc.). For .NET Core-based tests, upgrade to .NET 3.1 or later.
For .NET Framework-based tests you may:
- Upgrade to .NET Core for the test project
- Continue to use 4.0