internal void InstallBaseVersion(InstallerBaseVersion installerBaseVersion, SqlConnection connection, SqlTransaction transaction) { var dbChangeList = new List<IDbChange>(); installerBaseVersion.AddDbChanges(dbChangeList); installerBaseVersion.SetTables(dbChangeList); installerBaseVersion.PrepareUp(); _databaseScriptRunner.Run(installerBaseVersion.Commands, connection, transaction); _versionHandler.InstallBaseVersion(installerBaseVersion, connection, transaction); }
internal void InstallBaseVersion(InstallerBaseVersion installerBaseVersion, SqlConnection connection, SqlTransaction transaction) { var installedNameAndVersion = new InstallationNameAndVersion { InstallationName = installerBaseVersion.InstallationName, InstalledVersion = installerBaseVersion.Version, PreviousVersion = 0, StartedInstallingVersion = installerBaseVersion.Version }; _versionStorage.Create(installedNameAndVersion, connection, transaction); }
public void Run(IEnumerable<DatabaseVersion> databaseVersions) { using (var connection = new SqlConnection(_installerOptions.ConnectionString)) { connection.Open(); using (var transaction = connection.BeginTransaction()) { _log.LogDebug("DatabaseInstaller started"); if (!_versionStorage.IsInstalled(connection, transaction)) { _log.LogDebug("First installation, installing base version"); var installerBaseVersion = new InstallerBaseVersion(_installerOptions.InstalledVersionsDatabaseTableName); _databaseVersionInstaller.InstallBaseVersion( installerBaseVersion, connection, transaction); } _databaseVersionInstaller.Install(databaseVersions.ToList(), connection, transaction); _log.LogDebug("DatabaseInstaller finished, commit changes"); transaction.Commit(); _log.LogDebug("Commit completed"); } } }