Пример #1
0
        public override void Perform(SchemaChanges changes, IOutput output)
        {
            // This step covers both unique keys (including primary keys) and non-unique indexes
            foreach (var current in UniqueIndexType.AllFrom(changes.Current))
            {
                if (!UniqueIndexType.IndexHasChanged(changes, current))
                {
                    continue;
                }

                changes.Remove(changes.SchemaDriver.GetDropUniqueConstraintSql(current.ParentName, current.Name), current);
            }
            foreach (var current in NonUniqueIndexType.AllFrom(changes.Current))
            {
                if (!NonUniqueIndexType.IndexHasChanged(changes, current))
                {
                    continue;
                }

                changes.Remove(changes.SchemaDriver.GetDropIndexSql(current.ParentName, current.Name), current);
            }
        }