Esempio n. 1
0
        private void UpdateSelf()
        {
            var migrator = new SchemaMigrationExecutor(_runner, GetMigratorTasks(), SchemaName);

            using (var t = _db.BeginTransaction())
            {
                if (!_db.DatabaseTools().TableExists(TableName))
                {
                    migrator.InstallSchema();
                    AppendVersion(SchemaName, migrator.LatestVersionAvailable);
                }
                else
                {
                    var latest = GetInstalledVersion(SchemaName);
                    if (latest.IsNullOrEmpty())
                    {
                        migrator.InstallSchema();
                        AppendVersion(SchemaName, migrator.LatestVersionAvailable);
                    }
                    else
                    {
                        if (latest != migrator.LatestVersionAvailable)
                        {
                            migrator.MigrateToLatestFrom(latest);
                            AppendVersion(SchemaName, migrator.LatestVersionAvailable);
                        }
                    }
                }

                t.Commit();
            }
        }
Esempio n. 2
0
        public void two_versions_of_setup_Db_throws()
        {
            _tasks.Add(new InstallerTask());
            var s = new SchemaMigrationExecutor(new FakeRunner(), _tasks, "TestSchema");

            Assert.Throws <InvalidOperationException>(() => s.InstallSchema());
        }
Esempio n. 3
0
        private void UpdateSelf()
        {
            var migrator = new SchemaMigrationExecutor(_runner, GetMigratorTasks(), SchemaName);

            using (var t = _db.BeginTransaction())
            {
                if (!_db.DatabaseTools().TableExists(TableName))
                {
                    migrator.InstallSchema();
                    AppendVersion(SchemaName, migrator.LatestVersionAvailable);
                }
                else
                {
                    var latest = GetInstalledVersion(SchemaName);
                    if (latest.IsNullOrEmpty())
                    {
                        migrator.InstallSchema();
                        AppendVersion(SchemaName, migrator.LatestVersionAvailable);
                    }
                    else
                    {
                        if (latest != migrator.LatestVersionAvailable)
                        {
                            migrator.MigrateToLatestFrom(latest);
                            AppendVersion(SchemaName, migrator.LatestVersionAvailable);
                        }
                    }
                }

                t.Commit();
            }
        }
Esempio n. 4
0
        public SchemaMigrationExecutorTests()
        {
            LogHelper.Register(new ConsoleLogger(), "Default");
            _sb    = new StringBuilder();
            _tasks = new List <IMigrationTask>();
            _tasks.Add(new Migration2(_sb));
            _tasks.Add(new InstallerTask(_sb));
            _tasks.Add(new Migration1(_sb));
            var runner = new FakeRunner();

            _schema = new SchemaMigrationExecutor(runner, _tasks, "TestSchema");
        }