Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ jobs:
uses: actions/setup-dotnet@v1
with:
dotnet-version: |
6.0.x
8.0.x
9.0.x
10.0.x

- name: Restore dependencies
run: dotnet restore
Expand Down Expand Up @@ -59,4 +59,4 @@ jobs:
echo "DbEx_ConnectionStrings__PostgresDb=Server=localhost; Port=5432; Database=dbex_test; Username=postgres; Pwd=yourStrong#!Password; Pooling=false" >> $GITHUB_ENV

- name: Test
run: dotnet test --no-build --verbosity normal
run: dotnet test --no-build --verbosity normal -p:TestTfmsInParallel=false
22 changes: 21 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,26 @@

Represents the **NuGet** versions.

## v3.0.0
All internal dependencies to [`CoreEx`](https://github.com/avanade/coreex) have been removed. This is intended to further generalize the capabilities of `DbEx`; but more importantly, break the pseudo circular dependency reference between the two repositories.
- *Enhancement:* Added `net10.0` support and updated all related package dependencies to latest; now supports only `net8.0`, `net9.0` and `net10.0`.
- *Enhancement:* List of key **breaking changes** as follows:
- `DatabaseSchemaConfig.CreatedDate` renamed to `DatabaseSchemaConfig.CreatedOn`.
- `DatabaseSchemaConfig.UpdatedDate` renamed to `DatabaseSchemaConfig.UpdatedOn`.
- `MigrationArgsBase.CreatedDateColumnName` renamed to `MigrationArgsBase.CreatedOnColumnName`.
- `MigrationArgsBase.UpdatedDateColumnName` renamed to `MigrationArgsBase.UpdatedOnColumnName`.
- `DateTimeOffset` is the preferred .NET type for date/time auditing/timestamping.
- *Enhancement:* Added script suffix to discern the database-type; e.g. `*.sql` (SQL Server), `*.pgsql` (PostgreSQL) and `*.mysql` (MySQL), etc. This is a standard convention-based approach to enable support for multiple databases within the same project/assembly, specifically the likes of intellisense. Breaking change implications:
- As the name suffix has changed, the existing convention-based discovery of scripts will not find any scripts until they have been renamed to include the correct suffix; e.g. `MyScript.sql`, `MyScript.pgsql` and `MyScript.mysql`.
- Additionally, existing journal entries will not be found as the script name is used as the journal identifier; i.e. the existing journal entries will need to be updated to include the updated suffix.
- *Enhancement:* Introduced basic code-generation (leverages [`OnRamp`](https://github.com/avanade/onramp)).
- Entity Framework (EF) convention-based model and model-builder code generation added (all supported databases included).
- Transactional `Outbox` and corresponding `OutboxLease` code-generation added (SQL Server and PostgreSQL only).
- The existence of the code-generation configuration file `dbex.yaml` is required to enable.
- Added `dbex.yaml` support for `$schema` reference; see [`dbex.json`](./schema/dbex.json) (JSON-schema).

The enhancements have been made in a manner to maximize backwards compatibility with previous versions of `DbEx` where possible; however, some breaking changes were unfortunately unavoidable (and made to improve overall).

## v2.8.1
- *Fixed:* All related package dependencies updated to latest.

Expand Down Expand Up @@ -35,7 +55,7 @@ Represents the **NuGet** versions.
- *Fixed:* SQL Server `data` merge statement fixed to include the `TenantIdColumn` where applicable to avoid possible duplicate key.

## v2.5.7
- *Fixed:* Corrected issue introduced in version `2.5.5` where some strings were being incorrectly converted to a guid.
- *Fixed:* Corrected issue introduced in version `2.5.5` where some strings were being incorrectly converted to a GUID.

## v2.5.6
- *Fixed:* Release build and publish; version `2.5.5` was not published correctly.
Expand Down
2 changes: 1 addition & 1 deletion Common.targets
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project>
<PropertyGroup>
<Version>2.8.1</Version>
<Version>3.0.0</Version>
<LangVersion>preview</LangVersion>
<Authors>Avanade</Authors>
<Company>Avanade</Company>
Expand Down
26 changes: 17 additions & 9 deletions DbEx.sln
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.1.32228.430
# Visual Studio Version 18
VisualStudioVersion = 18.3.11312.210
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DbEx", "src\DbEx\DbEx.csproj", "{1C02E315-1886-4F77-976F-7081764A4FCB}"
EndProject
Expand All @@ -20,6 +20,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
CODE_OF_CONDUCT.md = CODE_OF_CONDUCT.md
Common.targets = Common.targets
CONTRIBUTING.md = CONTRIBUTING.md
docker-compose.yml = docker-compose.yml
LICENSE = LICENSE
nuget-publish.ps1 = nuget-publish.ps1
README.md = README.md
Expand All @@ -28,8 +29,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DbEx.Test.Console", "tests\DbEx.Test.Console\DbEx.Test.Console.csproj", "{117B6E86-2C88-446E-AC3A-AE1A2E84E2D8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DbEx.Test.OutboxConsole", "tests\DbEx.Test.OutboxConsole\DbEx.Test.OutboxConsole.csproj", "{959DD5E1-530A-42BA-82B8-F17A657AC351}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DbEx.Test.Error", "tests\DbEx.Test.Error\DbEx.Test.Error.csproj", "{2069346C-9769-48DF-B71F-A58ED6A2192B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{BB01353C-4FB3-4D61-899C-1A1D8F0AA268}"
Expand All @@ -52,6 +51,15 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DbEx.Postgres", "src\DbEx.P
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbEx.Test.PostgresConsole", "tests\DbEx.Test.PostgresConsole\DbEx.Test.PostgresConsole.csproj", "{9DBC4E5E-6321-4F56-82CC-7ECEE1020EE0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{D0DB9FBD-1CF8-421C-84A4-F2398289AA71}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbEx.Tooling.Console", "tools\DbEx.Tooling.Console\DbEx.Tooling.Console.csproj", "{D66FA528-5FEB-48C1-9612-B61F3134741E}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Schema", "Schema", "{86DCB8F5-DA63-41B0-B6ED-9D7BFA62F391}"
ProjectSection(SolutionItems) = preProject
schema\dbex.json = schema\dbex.json
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand All @@ -74,10 +82,6 @@ Global
{117B6E86-2C88-446E-AC3A-AE1A2E84E2D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{117B6E86-2C88-446E-AC3A-AE1A2E84E2D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{117B6E86-2C88-446E-AC3A-AE1A2E84E2D8}.Release|Any CPU.Build.0 = Release|Any CPU
{959DD5E1-530A-42BA-82B8-F17A657AC351}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{959DD5E1-530A-42BA-82B8-F17A657AC351}.Debug|Any CPU.Build.0 = Debug|Any CPU
{959DD5E1-530A-42BA-82B8-F17A657AC351}.Release|Any CPU.ActiveCfg = Release|Any CPU
{959DD5E1-530A-42BA-82B8-F17A657AC351}.Release|Any CPU.Build.0 = Release|Any CPU
{2069346C-9769-48DF-B71F-A58ED6A2192B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2069346C-9769-48DF-B71F-A58ED6A2192B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2069346C-9769-48DF-B71F-A58ED6A2192B}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand All @@ -102,6 +106,10 @@ Global
{9DBC4E5E-6321-4F56-82CC-7ECEE1020EE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9DBC4E5E-6321-4F56-82CC-7ECEE1020EE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9DBC4E5E-6321-4F56-82CC-7ECEE1020EE0}.Release|Any CPU.Build.0 = Release|Any CPU
{D66FA528-5FEB-48C1-9612-B61F3134741E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D66FA528-5FEB-48C1-9612-B61F3134741E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D66FA528-5FEB-48C1-9612-B61F3134741E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D66FA528-5FEB-48C1-9612-B61F3134741E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -111,10 +119,10 @@ Global
{06385968-DFF7-4470-B87E-55D98CC4661C} = {97C99299-8645-46CC-A851-6F3E79112221}
{7B499943-7183-446F-92C0-D9DAD6237303} = {06385968-DFF7-4470-B87E-55D98CC4661C}
{117B6E86-2C88-446E-AC3A-AE1A2E84E2D8} = {06385968-DFF7-4470-B87E-55D98CC4661C}
{959DD5E1-530A-42BA-82B8-F17A657AC351} = {06385968-DFF7-4470-B87E-55D98CC4661C}
{2069346C-9769-48DF-B71F-A58ED6A2192B} = {06385968-DFF7-4470-B87E-55D98CC4661C}
{80EF0604-F641-4D01-9922-0162D0C69E02} = {06385968-DFF7-4470-B87E-55D98CC4661C}
{9DBC4E5E-6321-4F56-82CC-7ECEE1020EE0} = {06385968-DFF7-4470-B87E-55D98CC4661C}
{D66FA528-5FEB-48C1-9612-B61F3134741E} = {D0DB9FBD-1CF8-421C-84A4-F2398289AA71}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {1A02148E-CFB1-43D0-8DC0-123232A179A7}
Expand Down
24 changes: 24 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: DbEx

services:
db-sql-server:
image: mcr.microsoft.com/mssql/server:2019-latest
environment:
SA_PASSWORD: "yourStrong(!)Password"
ACCEPT_EULA: "Y"
ports:
- "1433:1433"

db-mysql:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: "yourStrong#!Password"
ports:
- "3306:3306"

db-postgres:
image: postgres
environment:
POSTGRES_PASSWORD: "yourStrong#!Password"
Comment on lines +7 to +22
ports:
- "5432:5432"
Loading
Loading