Exemplo n.º 1
0
 public void Add(IMigrateSchema schema)
 {
     schema.MustNotBeNull();
     schema.Runner = _runner;
     _schemas.Add(schema);
     _schemas = Sort(_schemas);
 }
Exemplo n.º 2
0
 public void Add(IMigrateSchema schema)
 {
     schema.MustNotBeNull();
     schema.Runner = _runner;
     _schemas.Add(schema);
     _schemas = Sort(_schemas);
 }
        private void UpdateSelf()
        {
            IMigrateSchema <TDatabase> automaticMigrationSchema = _migrations.Schemas.SingleOrDefault(s => s.SchemaName == DatabaseMigration <TDatabase> .AutomaticMigrationSchemaName);

            automaticMigrationSchema.MustNotBeNull("Required schema '" + DatabaseMigration <TDatabase> .AutomaticMigrationSchemaName + "' not found");

            using (var t = _unitOfWorkCreator.StartUnitOfWork(_db))
            {
                if (!_repository.IsMigrationsInitialized())
                {
                    automaticMigrationSchema.InstallSchema();
                    AppendVersion(DatabaseMigration <TDatabase> .AutomaticMigrationSchemaName, automaticMigrationSchema.LatestVersionAvailable);
                    // migrator.InstallSchema();
                    // AppendVersion(DatabaseMigration<TDatabase>.AutomaticMigrationSchemaName, migrator.LatestVersionAvailable);
                }
                else
                {
                    var latest = GetInstalledVersion(DatabaseMigration <TDatabase> .AutomaticMigrationSchemaName);
                    if (latest.IsNullOrEmpty())
                    {
                        automaticMigrationSchema.InstallSchema();
                        AppendVersion(DatabaseMigration <TDatabase> .AutomaticMigrationSchemaName, automaticMigrationSchema.LatestVersionAvailable);
                        //migrator.InstallSchema();
                        //AppendVersion(DatabaseMigration<TDatabase>.AutomaticMigrationSchemaName, migrator.LatestVersionAvailable);
                    }
                    else
                    {
                        if (latest != automaticMigrationSchema.LatestVersionAvailable)
                        {
                            automaticMigrationSchema.MigrateToLatestFrom(latest);
                            AppendVersion(DatabaseMigration <TDatabase> .AutomaticMigrationSchemaName, automaticMigrationSchema.LatestVersionAvailable);
                            //migrator.MigrateToLatestFrom(latest);
                            //AppendVersion(DatabaseMigration<TDatabase>.AutomaticMigrationSchemaName, migrator.LatestVersionAvailable);
                        }
                    }
                }

                t.Commit();
            }
        }