|
1 | 1 | -- If the dacpac is already deployed to the server, check if the actual installed version is suitable for the new version. |
2 | 2 | -- Throw an error if the new version isn't compatible to the installed version, because a post-deployment script of a previous version has to be performed before. |
3 | 3 |
|
4 | | --- Check first, if the database is already installed |
5 | | -IF EXISTS (SELECT TOP (1) |
6 | | - 1 |
7 | | - FROM [sys].[databases] |
8 | | - WHERE [name] = '$(DatabaseName)') |
9 | | -BEGIN |
| 4 | +-- Check first, if the database is already installed and VersionHistory table is available |
10 | 5 |
|
11 | | - DECLARE @Major AS TINYINT; |
12 | | - DECLARE @Minor AS TINYINT; |
13 | | - DECLARE @Patch AS TINYINT; |
| 6 | +DECLARE @Major AS TINYINT; |
| 7 | +DECLARE @Minor AS TINYINT; |
| 8 | +DECLARE @Patch AS TINYINT; |
14 | 9 |
|
| 10 | +IF OBJECT_ID('[$(DatabaseName)].[dbo].[VersionHistory]') IS NOT NULL |
| 11 | +BEGIN |
15 | 12 | SELECT TOP (1) |
16 | | - @Major = [MajorVersion] |
17 | | - ,@Minor = [MinorVersion] |
| 13 | + @Major = [MajorVers] |
| 14 | + ,@Minor = [MinorVers] |
18 | 15 | ,@Patch = [PatchVers] |
19 | | - FROM [$DatabaseName)].[dbo].[VersionHistory] |
| 16 | + FROM [$(DatabaseName)].[dbo].[VersionHistory] |
20 | 17 | ORDER BY [InstallDate] DESC; |
21 | 18 |
|
22 | 19 | -- Check last version if update is applicable |
23 | 20 | IF ISNULL(@Major, 0) <= 1 |
24 | 21 | AND ISNULL(@Minor, 0) <= 0 |
25 | | - AND ISNULL(@Patch, 0) <= 0 |
| 22 | + AND ISNULL(@Patch, 0) < 0 |
26 | 23 |
|
27 | 24 | THROW 50000, 'The actual database version is not compatible with this package version. Update the database prior to version 1.0.0', 1; |
28 | 25 |
|
|
0 commit comments