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(); } }