public async Task UpdateDatabaseAsync(IMediator mediator, string database) { var databaseFileHandler = new DatabaseFileHandler(database); foreach (var updateStep in this._updateCoordinator.GetUpdateStepsBeginningFromVersion(new Version(1, 0, 0, 0))) { using (var connection = databaseFileHandler.OpenConnection()) { using (var transaction = connection.BeginTransaction()) { var scriptsToRun = updateStep.GetSqlUpdateScripts(); foreach (var script in scriptsToRun) { await connection.ExecuteAsync(script); } transaction.Commit(); } } await updateStep.PerformMigrationsAsync(mediator); } }
public void Database_Create_ConnectionCouldBeEstablished() { // Arrange var exampleFile = "ConnectionAfterCreateTest.db"; var databaseFileHandler = new DatabaseFileHandler(exampleFile); databaseFileHandler.DeleteDatabaseIfExists(); // Act && Assert var fullexampleFile = Path.Combine(DataDirectories.GetUserApplicationDatabasesDirectory(), exampleFile); Assert.DoesNotThrow(() => databaseFileHandler.CreateNewDatabase()); var fileWasCreated = File.Exists(fullexampleFile); var connectionWasOpened = false; using (var connection = databaseFileHandler.OpenConnection()) { connectionWasOpened = connection.State == ConnectionState.Open; } Assert.That(fileWasCreated); Assert.That(connectionWasOpened); databaseFileHandler.DeleteDatabaseIfExists(); }