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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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");
                }
            }
        }