public override void Migrate()
        {
            // Some people seem to have a constraint in their DB instead of an index, we'd need to drop that one
            // See: https://our.umbraco.com/forum/using-umbraco-and-getting-started/93282-upgrade-from-711-to-712-fails
            var constraints = SqlSyntax.GetConstraintsPerTable(Context.Database).Distinct().ToArray();

            if (constraints.Any(x => x.Item2.InvariantEquals("IX_umbracoLanguage_languageISOCode")))
            {
                Delete.UniqueConstraint("IX_umbracoLanguage_languageISOCode").FromTable("umbracoLanguage").Do();
            }

            //Now check for indexes of that name and drop that if it exists
            var dbIndexes = SqlSyntax.GetDefinedIndexesDefinitions(Context.Database);

            if (dbIndexes.Any(x => x.IndexName.InvariantEquals("IX_umbracoLanguage_languageISOCode")))
            {
                Delete.Index("IX_umbracoLanguage_languageISOCode").OnTable("umbracoLanguage").Do();
            }

            Alter.Table("umbracoLanguage")
            .AlterColumn("languageISOCode")
            .AsString(14)
            .Nullable()
            .Do();

            Create.Index("IX_umbracoLanguage_languageISOCode")
            .OnTable("umbracoLanguage")
            .OnColumn("languageISOCode")
            .Ascending()
            .WithOptions()
            .Unique()
            .Do();
        }
Exemplo n.º 2
0
        public override void Migrate()
        {
            // at some point, the KeyValueService dropped the PK and failed to re-create it,
            // so the PK is gone - make sure we have one, and create if needed

            var constraints = SqlSyntax.GetConstraintsPerTable(Database);
            var exists      = constraints.Any(x => x.Item2 == "PK_umbracoLock");

            if (!exists)
            {
                Create.PrimaryKey("PK_umbracoLock").OnTable(Constants.DatabaseSchema.Tables.Lock).Column("id").Do();
            }
        }
Exemplo n.º 3
0
        public override void Up()
        {
            Execute.Code(database =>
            {
                var localContext = new LocalMigrationContext(Context.CurrentDatabaseProvider, database, SqlSyntax, Logger);
                // Some people seem to have a constraint in their DB instead of an index, we'd need to drop that one
                // See: https://our.umbraco.com/forum/using-umbraco-and-getting-started/93282-upgrade-from-711-to-712-fails
                var constraints = SqlSyntax.GetConstraintsPerTable(database).Distinct().ToArray();
                if (constraints.Any(x => x.Item2.InvariantEquals("IX_umbracoLanguage_languageISOCode")))
                {
                    localContext.Delete.UniqueConstraint("IX_umbracoLanguage_languageISOCode").FromTable("umbracoLanguage");
                    return(localContext.GetSql());
                }
                return(null);
            });

            Execute.Code(database =>
            {
                var localContext = new LocalMigrationContext(Context.CurrentDatabaseProvider, database, SqlSyntax, Logger);

                //Now check for indexes of that name and drop that if it exists
                var dbIndexes = SqlSyntax.GetDefinedIndexes(database)
                                .Select(x => new DbIndexDefinition(x)).ToArray();
                if (dbIndexes.Any(x => x.IndexName.InvariantEquals("IX_umbracoLanguage_languageISOCode")))
                {
                    localContext.Delete.Index("IX_umbracoLanguage_languageISOCode").OnTable("umbracoLanguage");
                    return(localContext.GetSql());
                }
                return(null);
            });

            Alter.Table("umbracoLanguage")
            .AlterColumn("languageISOCode")
            .AsString(14)
            .Nullable();

            Create.Index("IX_umbracoLanguage_languageISOCode")
            .OnTable("umbracoLanguage")
            .OnColumn("languageISOCode")
            .Ascending()
            .WithOptions()
            .Unique();
        }