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