public void CanGetVersionMetadata()
 {
     var version = new VersionInfo { Version = 201301150001 };
     version.Metadata["Id"] = 1;
     appliedVersions.AddAppliedMigration(version);
     appliedVersions.Latest().Metadata["Id"].ShouldBe(1);
 }
        public ConnectionlessVersionLoader(IMigrationRunner runner, IAssemblyCollection assemblies, IMigrationConventions conventions, long startVersion, long targetVersion)
        {
            Runner = runner;
            Assemblies = assemblies;
            Conventions = conventions;
            StartVersion = startVersion;
            TargetVersion = targetVersion;

            Processor = Runner.Processor;

            VersionInfo = new VersionInfo();
            VersionTableMetaData = GetVersionTableMetaData();
            VersionMigration = new VersionMigration(VersionTableMetaData);
            VersionSchemaMigration = new VersionSchemaMigration(VersionTableMetaData);
            VersionUniqueMigration = new VersionUniqueMigration(VersionTableMetaData);
            VersionDescriptionMigration = new VersionDescriptionMigration(VersionTableMetaData);

            LoadVersionInfo();
        }
        private void LoadVersionInfo()
        {
            if (_migrationProcessor.Options.PreviewOnly)
            {
                if (!_alreadyCreatedVersionTable)
                {
                    new MigrationRunner(_migrationConventions, _migrationProcessor, _announcer, new StopWatch())
                        .Up(_versionMigration);
                    _versionInfo = new VersionInfo();
                    _alreadyCreatedVersionTable = true;
                }
                else
                    _versionInfo = new VersionInfo();
                return;
            }

            if (!_migrationProcessor.TableExists(_versionTableMetaData.TableName))
            {
                var runner = new MigrationRunner(_migrationConventions, _migrationProcessor, _announcer, new StopWatch());
                runner.Up(_versionMigration);
                _versionInfo = new VersionInfo();
                return;
            }

            var dataSet = _migrationProcessor.ReadTableData(_versionTableMetaData.TableName);
            _versionInfo = new VersionInfo();

            foreach (DataRow row in dataSet.Tables[0].Rows)
            {
                _versionInfo.AddAppliedMigration(long.Parse(row[0].ToString()));
            }
        }
        public void RollbackToVersion(long version)
        {
            // Get the migrations between current and the to version
            foreach (var migrationNumber in VersionInfo.AppliedMigrations())
            {
                if (version < migrationNumber || version == 0)
                {
                    ApplyMigrationDown(migrationNumber);
                }
            }

            if (version == 0)
                RemoveVersionTable();

            _migrationProcessor.CommitTransaction();
            _versionInfo = null;
        }
        public void Rollback(int steps)
        {
            foreach (var migrationNumber in VersionInfo.AppliedMigrations().Take(steps))
            {
                ApplyMigrationDown(migrationNumber);
            }

            _migrationProcessor.CommitTransaction();

            _versionInfo = null;
        }
        public void MigrateUp(long version)
        {
            if (!_alreadyOutputPreviewOnlyModeWarning && _migrationProcessor.Options.PreviewOnly)
            {
                _announcer.Heading("PREVIEW-ONLY MODE");
                _alreadyOutputPreviewOnlyModeWarning = true;
            }

            ApplyMigrationUp(version);
            _versionInfo = null;
        }
        public void MigrateUp()
        {
            try
            {
                foreach (var version in Migrations.Keys)
                {
                    MigrateUp(version);
                }

                _migrationProcessor.CommitTransaction();
                _versionInfo = null;
            }
            catch (Exception)
            {
                _migrationProcessor.RollbackTransaction();
                throw;
            }
        }
        public void MigrateDown(long version)
        {
            try
            {
                ApplyMigrationDown(version);

                _migrationProcessor.CommitTransaction();
                _versionInfo = null;
            }
            catch (Exception)
            {
                _migrationProcessor.RollbackTransaction();
                throw;
            }
        }
 public void MigrateDown(long version)
 {
     migrateDown(version);
     _versionInfo = null;
 }
		public void SetUp()
		{
			_versionInfo = new VersionInfo();			
		}
        private void loadVersionInfo()
        {
            if (!_migrationProcessor.TableExists(_versionTableMetaData.TableName))
            {
                var runner = new MigrationRunner(_migrationConventions, _migrationProcessor);
                runner.Up(_versionMigration);
            }

            var dataSet = _migrationProcessor.ReadTableData(_versionTableMetaData.TableName);
            _versionInfo = new VersionInfo();

            foreach (DataRow row in dataSet.Tables[0].Rows)
            {
                _versionInfo.AddAppliedMigration(long.Parse(row[0].ToString()));
            }
        }
 public void MigrateUp(long version)
 {
     ApplyMigrationUp(version);
     _versionInfo = null;
 }
 public void Rollback(int steps)
 {
     foreach (var migrationNumber in VersionInfo.AppliedMigrations().Take(steps))
     {
         migrateDown(migrationNumber);
     }
     _versionInfo = null;
 }
 public void MigrateUp(long version)
 {
     migrateUp(version);
     _versionInfo = null;
 }
 public void MigrateUp()
 {
     foreach (var version in Migrations.Keys)
     {
         MigrateUp(version);
     }
     _versionInfo = null;
 }
Esempio n. 16
0
        public void LoadVersionInfo()
        {
            if ( Processor.Options.PreviewOnly )
            {
                if ( !AlreadyCreatedVersionTable )
                {
                    Runner.Up( VersionMigration );
                    VersionInfo = new VersionInfo();
                }
                else
                    VersionInfo = new VersionInfo();

                return;
            }

            if ( !AlreadyCreatedVersionTable )
            {
                Runner.Up( VersionMigration );
                _versionInfo = new VersionInfo();
                return;
            }

            var dataSet = Processor.ReadTableData( VersionTableMetaData.TableName );
            _versionInfo = new VersionInfo();

            foreach ( DataRow row in dataSet.Tables[ 0 ].Rows )
            {
                _versionInfo.AddAppliedMigration( long.Parse( row[ 0 ].ToString() ) );
            }
        }
Esempio n. 17
0
        public void LoadVersionInfo()
        {
            if (!AlreadyCreatedVersionSchema)
                Runner.Up(VersionSchemaMigration);

            bool isNewTable = false;
            if ( !AlreadyCreatedVersionTable )
            {
                Runner.Up( VersionMigration );
                isNewTable = true;
            }

            if (Processor.Options.StoreExtendedData && !AlreadyCreatedExtendedVersionTable)
            {
                Runner.Up(ExtendedVersionMigration);
            }
            if (isNewTable)
            {
                _versionInfo = new VersionInfo();
                return;
            }
            var dataSet = Processor.ReadTableData(VersionTableMetaData.SchemaName, VersionTableMetaData.TableName );
            _versionInfo = new VersionInfo();

            foreach ( DataRow row in dataSet.Tables[ 0 ].Rows )
            {
                var migrationVersion = long.Parse(row[0].ToString());
                _versionInfo.AddAppliedMigration( migrationVersion );
                if ((Processor.Options.StoreExtendedData) && (VersionTableMetaData is IExtendedVersionTableMetadata))
                {
                    var extendedTableMetadata = (IExtendedVersionTableMetadata) VersionTableMetaData;
                    _versionInfo.AddAppliedMigrationInfo(
                        migrationVersion,
                        row[extendedTableMetadata.DescriptionColumnName].ToString(),
                        row[extendedTableMetadata.DateAppliedColumnName] is DateTime ? (DateTime) row[extendedTableMetadata.DateAppliedColumnName] : new DateTime(),
                        row[extendedTableMetadata.ElapsedTimeColumnName] is double ? (double) row[extendedTableMetadata.ElapsedTimeColumnName] : 0d);
                }
            }
        }
Esempio n. 18
0
 public NullVersionLoader()
 {
     VersionInfo = new VersionInfo();
 }