public static Migration Load(MigrationMemento memento, IImmutableDictionary <BigInteger, Migration> migrationsByHashCode) { switch (memento.Type) { case nameof(UseSchemaMigration): return(UseSchemaMigration.FromMemento(memento, migrationsByHashCode)); case nameof(CreateTableMigration): return(CreateTableMigration.FromMemento(memento, migrationsByHashCode)); case nameof(CreateColumnMigration): return(CreateColumnMigration.FromMemento(memento, migrationsByHashCode)); case nameof(CreatePrimaryKeyMigration): return(CreatePrimaryKeyMigration.FromMemento(memento, migrationsByHashCode)); case nameof(CreateUniqueIndexMigration): return(CreateUniqueIndexMigration.FromMemento(memento, migrationsByHashCode)); case nameof(CreateIndexMigration): return(CreateIndexMigration.FromMemento(memento, migrationsByHashCode)); case nameof(CreateForeignKeyMigration): return(CreateForeignKeyMigration.FromMemento(memento, migrationsByHashCode)); case nameof(CustomSqlMigration): return(CustomSqlMigration.FromMemento(memento, migrationsByHashCode)); default: throw new ArgumentException($"Unknown type {memento.Type}"); } }
public IndexSpecification CreateIndex(params ColumnSpecification[] columns) { var childMigration = new CreateIndexMigration( _migration, columns.Select(c => c.Migration), Prerequisites); MigrationHistoryBuilder.Append(childMigration); childMigration.AddToParent(); return(new IndexSpecification(childMigration, MigrationHistoryBuilder)); }
internal IndexSpecification(CreateIndexMigration migration, MigrationHistoryBuilder migrationHistoryBuilder) : base(migrationHistoryBuilder) { _migration = migration; }