Added class property DatabaseName and cleaned up usage elsewhere

This commit is contained in:
2025-08-31 12:10:12 -05:00
parent f7d815eed2
commit b16887803b

View File

@@ -10,6 +10,7 @@ namespace DbTools {
public class Migrations {
public string MigrationPath { get; set; }
public string CompletedMigrationFile { get; set; } = "migrations.txt";
public string DatabaseName { get; set; }
public int Pending { get; private set; }
public int Successful { get; private set; }
@@ -20,14 +21,15 @@ namespace DbTools {
public event MigrationCompletedEventHandler MigrationCompleted;
public event MigrationStartedEventHandler MigrationStarted;
public Migrations(string migrationPath) {
public Migrations(string migrationPath, string databaseName) {
MigrationPath = migrationPath;
DatabaseName = databaseName;
if (!Directory.Exists(MigrationPath)) {
Directory.CreateDirectory(MigrationPath);
}
}
public string[] GetAvailableMigrations(string databaseName, bool includeFailed = false) {
public string[] GetAvailableMigrations(bool includeFailed = false) {
string completedFile = Path.Combine(MigrationPath, CompletedMigrationFile);
List<string> completedMigrations = new List<string>();
if (!File.Exists(completedFile)) {
@@ -44,7 +46,7 @@ namespace DbTools {
}
}
var migrationFiles = Directory.GetFiles(MigrationPath, databaseName + "_*.sql")
var migrationFiles = Directory.GetFiles(MigrationPath, DatabaseName + "_*.sql")
.Where(f => !completedMigrations.Contains(Path.GetFileName(f)))
.OrderBy(f => f);
@@ -58,12 +60,12 @@ namespace DbTools {
public async Task ApplyMigrationsAsync(IDbConnection dbConnection, string databaseName, bool attemptFailed = false) {
await Task.Run(() => {
ApplyMigrations(dbConnection, databaseName, attemptFailed);
ApplyMigrations(dbConnection, attemptFailed);
});
}
public void ApplyMigrations(IDbConnection dbConnection, string databaseName, bool attemptFailed = false) {
string[] migrationFiles = GetAvailableMigrations(databaseName, attemptFailed);
public void ApplyMigrations(IDbConnection dbConnection, bool attemptFailed = false) {
string[] migrationFiles = GetAvailableMigrations(attemptFailed);
Total = migrationFiles.Count();
Pending = Total;
Failed = 0;
@@ -75,7 +77,7 @@ namespace DbTools {
MigrationStarted?.Invoke(this, new MigrationStartedEventArgs(migrationName, --Pending));
MigrationProgressReported?.Invoke(this, new MigrationProgressEventArgs(Total, Pending, Successful, Failed, $"Started Migration '{migrationName}'..."));
// TODO : Do the work
// Do the work
Exception error = null;
bool wasSuccessful = false;
try {