Add dbup for sql script handling

This commit is contained in:
Aaron Po
2026-01-13 00:25:30 -05:00
parent 43dcf0844d
commit 7fbdfbf542
4 changed files with 51 additions and 11 deletions

View File

@@ -1,6 +1,8 @@
using System.Data; using System.Data;
using System.Reflection;
using System.Security.Cryptography; using System.Security.Cryptography;
using System.Text; using System.Text;
using DbUp;
using idunno.Password; using idunno.Password;
using Konscious.Security.Cryptography; using Konscious.Security.Cryptography;
using Microsoft.Data.SqlClient; using Microsoft.Data.SqlClient;
@@ -123,3 +125,33 @@ static async Task RunSeedAsync(SqlConnection connection)
await ExecuteCredentialProcedureAsync(connection, credentialRows); await ExecuteCredentialProcedureAsync(connection, credentialRows);
Console.WriteLine($"Generated {credentialRows.Rows.Count} credential hashes."); Console.WriteLine($"Generated {credentialRows.Rows.Count} credential hashes.");
} }
// Get connection string from environment variable
var connectionString = Environment.GetEnvironmentVariable("DB_CONNECTION_STRING");
var upgrader =
DeployChanges.To
.SqlDatabase(connectionString)
.WithScriptsEmbeddedInAssembly(Assembly.GetExecutingAssembly())
.LogToConsole()
.Build();
var result = upgrader.PerformUpgrade();
if (!result.Successful)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(result.Error);
Console.ResetColor();
#if DEBUG
Console.ReadLine();
#endif
return -1;
}
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Success!");
Console.ResetColor();
return 0;

View File

@@ -1,20 +1,20 @@
-- ---------------------------------------------------------------------------- -- ----------------------------------------------------------------------------
-- ---------------------------------------------------------------------------- -- ----------------------------------------------------------------------------
/*
USE master;
-- USE master; IF EXISTS (SELECT name
FROM sys.databases
WHERE name = N'Biergarten')
BEGIN
ALTER DATABASE Biergarten SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
END
-- IF EXISTS (SELECT name DROP DATABASE IF EXISTS Biergarten;
-- FROM sys.databases
-- WHERE name = N'Biergarten')
-- BEGIN
-- ALTER DATABASE Biergarten SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
-- END
-- DROP DATABASE IF EXISTS Biergarten;
-- CREATE DATABASE Biergarten;
CREATE DATABASE Biergarten;
*/
-- ---------------------------------------------------------------------------- -- ----------------------------------------------------------------------------
-- ---------------------------------------------------------------------------- -- ----------------------------------------------------------------------------

View File

@@ -0,0 +1,6 @@
CREATE TYPE dbo.TblUserHashes AS TABLE
(
UserAccountId UNIQUEIDENTIFIER NOT NULL,
Hash NVARCHAR(MAX) NOT NULL
);

View File

@@ -1,3 +1,4 @@
-- Stored procedure to insert Argon2 hashes
CREATE OR ALTER PROCEDURE dbo.USP_AddUserCredentials CREATE OR ALTER PROCEDURE dbo.USP_AddUserCredentials
( (
@Hash dbo.TblUserHashes READONLY @Hash dbo.TblUserHashes READONLY
@@ -18,3 +19,4 @@ BEGIN
COMMIT TRANSACTION; COMMIT TRANSACTION;
END; END;
GO