public override void Up() { // SQLite only supports FK's defined in the create statement so // we ensure this is the only approach used so that SQLite can // successfully tested. At time of implementing, the FK constraint // wasn't explicitly used by any tests and so should affect anything. Create.Table("Users") .WithColumn("UserId").AsInt32().Identity().PrimaryKey() .WithColumn("GroupId").AsInt32().NotNullable().ForeignKey("Groups", "GroupId") .WithColumn("UserName").AsString(32).NotNullable() .WithColumn("Password").AsString(32).NotNullable(); Create.Table("Groups") .WithColumn("GroupId").AsInt32().Identity().PrimaryKey() .WithColumn("Name").AsString(32).NotNullable(); Create.Column("Foo").OnTable("Users").AsInt16().Indexed().WithDefaultValue(1); Create.Table("Foo") .WithColumn("Fizz").AsString(32); Rename.Table("Foo").To("Bar"); // commented out because this throws not implemented exception //Alter.Table( "" ).InSchema( "" ).ToSchema( "" ); //does not work in sqlite //Rename.Column("Fizz").OnTable("Bar").To("Buzz"); //Insert.IntoTable("Users").Row(new { UserName = "******", Password = "******" }); }
public override void Up() { Rename.Table(Tables.BookFile).InSchema(Schemas.Library) .To(Tables.BookContent); Alter.Table(Tables.BookContent).InSchema(Schemas.Library) .AddColumn("Language").AsString().Nullable(); }
public override void Down() { LogProvider.Log.Info("Rolling back migration #24."); try { if (Schema.Table(playerNotesTempTableName).Exists()) { if (Schema.Table(playerNotesTableName).Exists()) { LogProvider.Log.Info($"Deleting \"{playerNotesTableName}\" table."); Delete.Table(playerNotesTableName); LogProvider.Log.Info($"Renaming \"{playerNotesTempTableName}\" table to \"{playerNotesTableName}\"."); Rename.Table(playerNotesTempTableName).To(playerNotesTableName); } } } catch (Exception e) { LogProvider.Log.Error(this, "Migration #24 failed.", e); throw; } LogProvider.Log.Info("Migration #24 rolled back."); }
public override void Up() { Rename .Table("ContentOptionTypes").InSchema(SchemaName) .To("OptionTypes").InSchema(SchemaName); // Create new foreign keys, remove old ones Create .ForeignKey("FK_Cms_ContentOptions_Type_Cms_OptionTypes_Id") .FromTable("ContentOptions").InSchema(SchemaName) .ForeignColumn("Type") .ToTable("OptionTypes").InSchema(SchemaName) .PrimaryColumn("Id"); Create .ForeignKey("FK_Cms_PageContentOptions_Type_Cms_OptionTypes_Id") .FromTable("PageContentOptions").InSchema(SchemaName) .ForeignColumn("Type") .ToTable("OptionTypes").InSchema(SchemaName) .PrimaryColumn("Id"); Delete .ForeignKey("FK_Cms_ContentOptions_Type_Cms_ContentOptionTypes_Id") .OnTable("ContentOptions").InSchema(SchemaName); Delete .ForeignKey("FK_Cms_PageContentOptions_Type_Cms_ContentOptionTypes_Id") .OnTable("PageContentOptions").InSchema(SchemaName); }
public override void Up() { Create.Table("Users") .WithColumn("UserId").AsInt32().Identity().PrimaryKey() .WithColumn("GroupId").AsInt32().NotNullable() .WithColumn("UserName").AsString(32).NotNullable() .WithColumn("Password").AsString(32).NotNullable(); Create.Table("Groups") .WithColumn("GroupId").AsInt32().Identity().PrimaryKey() .WithColumn("Name").AsString(32).NotNullable(); Create.Column("Foo").OnTable("Users").AsInt16().Indexed().WithDefaultValue(1); //commenting out the FK so it passes the sqlite tests Create.ForeignKey() .FromTable("Users").ForeignColumn("GroupId") .ToTable("Groups").PrimaryColumn("GroupId"); //Create.ForeignKey("FK_Foo").FromTable("Users").ForeignColumn("GroupId").ToTable("Groups").PrimaryColumn("GroupId"); Create.Table("Foo") .WithColumn("Fizz").AsString(32); Rename.Table("Foo").To("Bar"); // commented out because this throws not implemented exception //Alter.Table( "" ).InSchema( "" ).ToSchema( "" ); //does not work in sqlite //Rename.Column("Fizz").OnTable("Bar").To("Buzz"); //Insert.IntoTable("Users").Row(new { UserName = "******", Password = "******" }); }
public override void Up() { Rename.Table("ReviewedFiles").InSchema("dbo").To("ReviewFiles"); Alter.Table("ReviewFiles").InSchema("dbo") .AddColumn("Status").AsInt32().NotNullable().WithDefaultValue(1); }
public override void Down() { // revert back the changes on blocks height & id columns Alter.Table("Block").AlterColumn("Height").AsInt32().NotNullable(); // remove the private key property from 'Height' column. Delete.PrimaryKey("Height").FromTable("Block"); // remove the primary key on 'Height'. Alter.Table("Block").AddColumn("Id").AsInt32().NotNullable().PrimaryKey().Identity(); // create the 'Id' column again and set is as primary key. // delete the new columns. Delete.Column("Reward").FromTable("Block"); Delete.Column("Accounted").FromTable("Block"); // revert back table & field names Rename.Table("Block").To("blocks"); Rename.Column("Id").OnTable("blocks").To("id"); Rename.Column("Height").OnTable("blocks").To("height"); Rename.Column("Orphaned").OnTable("blocks").To("orphaned"); Rename.Column("Confirmed").OnTable("blocks").To("confirmed"); Rename.Column("BlockHash").OnTable("blocks").To("blockHash"); Rename.Column("TxHash").OnTable("blocks").To("txHash"); Rename.Column("Amount").OnTable("blocks").To("amount"); Rename.Column("CreatedAt").OnTable("blocks").To("time"); // delete the newly created tables. Delete.Table("Account"); Delete.Table("Payment"); Delete.Table("Transaction"); }
protected override void MainDbUpgrade() { Rename.Table("NetImport").To("ImportLists"); Rename.Table("NetImportStatus").To("ImportListStatus"); Execute.Sql("UPDATE Config SET Key = 'importlistsyncinterval' WHERE Key = 'netimportsyncinterval'"); Alter.Table("ImportLists").AddColumn("SearchOnAdd").AsBoolean().WithDefaultValue(false); Create.TableForModel("ImportListMovies") .WithColumn("ImdbId").AsString().Nullable() .WithColumn("TmdbId").AsInt32() .WithColumn("ListId").AsInt32() .WithColumn("Title").AsString() .WithColumn("SortTitle").AsString().Nullable() .WithColumn("Status").AsInt32() .WithColumn("Overview").AsString().Nullable() .WithColumn("Images").AsString() .WithColumn("LastInfoSync").AsDateTime().Nullable() .WithColumn("Runtime").AsInt32() .WithColumn("InCinemas").AsDateTime().Nullable() .WithColumn("Year").AsInt32().Nullable() .WithColumn("Ratings").AsString().Nullable() .WithColumn("Genres").AsString().Nullable() .WithColumn("Certification").AsString().Nullable() .WithColumn("Collection").AsString().Nullable() .WithColumn("Website").AsString().Nullable() .WithColumn("OriginalTitle").AsString().Nullable() .WithColumn("PhysicalRelease").AsDateTime().Nullable() .WithColumn("Translations").AsString() .WithColumn("Studio").AsString().Nullable() .WithColumn("YouTubeTrailerId").AsString().Nullable() .WithColumn("DigitalRelease").AsDateTime().Nullable(); }
protected override void Migrate() { Rename.Table("cmsMedia").To(Constants.DatabaseSchema.Tables.MediaVersion).Do(); // that is not supported on SqlCE // Rename.Column("versionId").OnTable(Constants.DatabaseSchema.Tables.MediaVersion).To("id").Do(); AddColumn <MediaVersionDto>("id", out IEnumerable <string> sqls); Database.Execute($@"UPDATE {Constants.DatabaseSchema.Tables.MediaVersion} SET id=v.id FROM {Constants.DatabaseSchema.Tables.MediaVersion} m JOIN cmsContentVersion v on m.versionId = v.versionId JOIN umbracoNode n on v.contentId=n.id WHERE n.nodeObjectType='{Constants.ObjectTypes.Media}'"); foreach (var sql in sqls) { Execute.Sql(sql).Do(); } AddColumn <MediaVersionDto>("path", out sqls); Execute.Sql($"UPDATE {Constants.DatabaseSchema.Tables.MediaVersion} SET path=mediaPath").Do(); foreach (var sql in sqls) { Execute.Sql(sql).Do(); } // we had to run sqls to get the NULL constraints, but we need to get rid of most Delete.KeysAndIndexes(Constants.DatabaseSchema.Tables.MediaVersion).Do(); Delete.Column("mediaPath").FromTable(Constants.DatabaseSchema.Tables.MediaVersion).Do(); Delete.Column("versionId").FromTable(Constants.DatabaseSchema.Tables.MediaVersion).Do(); Delete.Column("nodeId").FromTable(Constants.DatabaseSchema.Tables.MediaVersion).Do(); }
public override void Up() { if (Schema.Schema(SchemaName).Table("Pages").Column("CultureGroupIdentifier").Exists()) { Rename .Column("CultureGroupIdentifier") .OnTable("Pages").InSchema(SchemaName) .To("LanguageGroupIdentifier"); } if (Schema.Schema(SchemaName).Table("Pages").Column("CultureId").Exists()) { Rename .Column("CultureId") .OnTable("Pages").InSchema(SchemaName) .To("LanguageId"); } if (Schema.Schema(SchemaName).Table("Cultures").Exists()) { Rename .Table("Cultures").InSchema(SchemaName) .To("Languages"); } }
public override void Up() { Rename.Table("pads").To("pad_colors"); Delete.Column("material") .Column("texture") .FromTable("pad_colors"); }
public override void Down() { Rename.Table("pad_colors").To("pads"); Alter.Table("pad_colors") .AddColumn("material").AsString(32) .AddColumn("texture").AsString(32); }
public override void Up() { Rename.Column("TypeLkp").OnTable("Frwk_Notes").To("CategoryLkp"); Delete.Column("SubTypeLkp").FromTable("Frwk_Notes"); Rename.Column("ImportanceLkp").OnTable("Frwk_Notes").To("PriorityLkp"); Alter.Table("Frwk_Notes").AddForeignKeyColumn("AuthorId", "Core_Persons"); Rename.Table("Frwk_Notes").To("Core_Notes"); }
public override void Down() { Delete.Column("Language") .FromTable(Tables.BookContent).InSchema(Schemas.Library); Rename.Table(Tables.BookContent).InSchema(Schemas.Library) .To(Tables.BookFile); }
public override void Down() { Rename .Column("case_type_id") .OnTable("case_card") .To("case_card_template_id"); Rename.Table("case_type").To("case_card_template"); }
public override void Up() { Rename.Table("map").To("maps"); Alter.Table("maps").AddColumn("imageData").AsCustom("json").NotNullable().SetExistingRowsTo("{}"); Execute.Sql("UPDATE maps SET imageData = JSON_INSERT(imageData, '$.width', JSON_EXTRACT(data, '$.width'))"); Execute.Sql("UPDATE maps SET imageData = JSON_INSERT(imageData, '$.height', JSON_EXTRACT(data, '$.height'))"); Execute.Sql("UPDATE maps SET imageData = JSON_INSERT(imageData, '$.zoomCount', JSON_EXTRACT(data, '$.zoomCount'))"); Execute.Sql("UPDATE maps SET imageData = JSON_INSERT(imageData, '$.extraZoomCount', JSON_EXTRACT(data, '$.extraZoomCount'))"); }
public override void Up() { Rename.Table("calendar").To("calendars"); Rename.Table("character").To("characters"); Rename.Table("character_history").To("character_history_entries"); Rename.Table("character_job").To("character_jobs"); Rename.Table("character_modifier").To("character_modifiers"); Rename.Table("character_modifier_value").To("character_modifier_values"); Rename.Table("character_speciality").To("character_specialities"); Rename.Table("effect").To("effects"); Rename.Table("effect_modifier").To("effect_modifiers"); Rename.Table("effect_type").To("effect_types"); Rename.Table("event").To("events"); Rename.Table("god").To("gods"); Rename.Table("group").To("groups"); Rename.Table("group_history").To("group_history_entries"); Rename.Table("item").To("items"); Rename.Table("item_slot").To("slots"); Rename.Table("item_template").To("item_templates"); Rename.Table("item_template_modifier").To("item_template_modifiers"); Rename.Table("item_template_requirement").To("item_template_requirements"); Rename.Table("item_template_section").To("item_template_sections"); Rename.Table("item_template_skill").To("item_template_skills"); Rename.Table("item_template_slot").To("item_template_slots"); Rename.Table("item_template_unskill").To("item_template_unskills"); Rename.Table("item_type").To("item_types"); Rename.Table("job").To("jobs"); Rename.Table("job_bonus").To("job_bonuses"); Rename.Table("job_requirement").To("job_requirements"); Rename.Table("job_restrict").To("job_restrictions"); Rename.Table("job_skill").To("job_skills"); Rename.Table("loot").To("loots"); Rename.Table("monster").To("monsters"); Rename.Table("monster_template").To("monster_templates"); Rename.Table("monster_template_simple_inventory").To("monster_template_inventory_elements"); Rename.Table("monster_trait").To("monster_traits"); Rename.Table("monster_type").To("monster_types"); Rename.Table("origin").To("origins"); Rename.Table("origin_bonus").To("origin_bonuses"); Rename.Table("origin_info").To("origin_information"); Rename.Table("origin_requirement").To("origin_requirements"); Rename.Table("origin_restrict").To("origin_restrictions"); Rename.Table("origin_skill").To("origin_skills"); Rename.Table("quest").To("quests"); Rename.Table("quest_template").To("quest_templates"); Rename.Table("skill").To("skills"); Rename.Table("skill_effect").To("skill_effects"); Rename.Table("speciality").To("specialities"); Rename.Table("speciality_modifier").To("speciality_modifiers"); Rename.Table("speciality_special").To("speciality_specials"); Rename.Table("spell").To("spells"); Rename.Table("spell_category").To("spell_categories"); Rename.Table("stat").To("stats"); Rename.Table("user").To("users"); Rename.Table("user_session").To("user_sessions"); }
public override void Up() { Rename .Table("active_line") .To("line"); Rename .Column("active_line_id") .OnTable("call_queue") .To("line_id"); }
public override void Up() { Rename.Table("item_template_category").To("item_template_subcategories"); Rename.Column("category").OnTable("item_template").To("subCategoryId"); Rename.Table("effect_category").To("effect_subcategories"); Rename.Column("category").OnTable("effect").To("subCategoryId"); Rename.Table("monster_category").To("monster_subcategories"); Rename.Column("categoryid").OnTable("monster_template").To("subCategoryId"); }
public override void Up() { // Fix table & field names - use signular words & pascal case. Rename.Table("blocks").To("Block"); Rename.Column("id").OnTable("Block").To("Id"); Rename.Column("height").OnTable("Block").To("Height"); Rename.Column("orphaned").OnTable("Block").To("Orphaned"); Rename.Column("confirmed").OnTable("Block").To("Confirmed"); Rename.Column("blockHash").OnTable("Block").To("BlockHash"); Rename.Column("txHash").OnTable("Block").To("TxHash"); Rename.Column("amount").OnTable("Block").To("Amount"); Rename.Column("time").OnTable("Block").To("CreatedAt"); // new payment processor uses block height as the foreign key regularly. // so we need to first drop the 'Id' column and set the new primary key as 'Height' column. Alter.Table("Block").AlterColumn("Id").AsInt32().NotNullable(); // remove primary key property from 'Id' column. Delete.PrimaryKey("Id").FromTable("Block"); // remove primary key on 'Id'. Create.PrimaryKey("Height").OnTable("Block").Column("Height"); // create new primary key on 'Height' column. Delete.Column("Id").FromTable("Block"); // delete the 'Id' column as we don't need it anymore. // add reward column to block table. Execute.Sql("ALTER TABLE Block ADD Reward DECIMAL(19,5) NOT NULL AFTER Amount"); // add accounted column to block table Execute.Sql("ALTER TABLE Block ADD Accounted Boolean NOT NULL AFTER Confirmed"); // create the users table. Create.Table("Account") .WithColumn("Id").AsInt32().NotNullable().PrimaryKey().Identity() .WithColumn("Username").AsString().NotNullable().Unique() .WithColumn("Address").AsString(34).NotNullable().Unique() .WithColumn("CreatedAt").AsDateTime().NotNullable(); // create the payout table. Create.Table("Payment") .WithColumn("Id").AsInt32().NotNullable().PrimaryKey().Identity() .WithColumn("Block").AsInt32().ForeignKey("Block", "Height") .WithColumn("AccountId").AsInt32().ForeignKey("Account", "Id") .WithColumn("Amount").AsDecimal().NotNullable() .WithColumn("Completed").AsBoolean().NotNullable() .WithColumn("CreatedAt").AsDateTime().NotNullable(); // create the transaction table. Create.Table("Transaction") .WithColumn("Id").AsInt32().NotNullable().PrimaryKey().Identity() .WithColumn("AccountId").AsInt32().ForeignKey("Account", "Id") .WithColumn("PaymentId").AsInt32().ForeignKey("Payment", "Id") .WithColumn("Amount").AsDecimal().NotNullable() .WithColumn("Currency").AsString(4).NotNullable() .WithColumn("TxHash").AsString(64).NotNullable() .WithColumn("CreatedAt").AsDateTime().NotNullable(); }
protected override void MainDbUpgrade() { Rename.Table("Profiles").To("QualityProfiles"); Alter.Table("QualityProfiles").AddColumn("UpgradeAllowed").AsInt32().Nullable(); Alter.Table("LanguageProfiles").AddColumn("UpgradeAllowed").AsInt32().Nullable(); // Set upgrade allowed for existing profiles (default will be false for new profiles) Update.Table("QualityProfiles").Set(new { UpgradeAllowed = true }).AllRows(); Update.Table("LanguageProfiles").Set(new { UpgradeAllowed = true }).AllRows(); Rename.Column("ProfileId").OnTable("Artists").To("QualityProfileId"); }
public override void Migrate() { Rename.Table("cmsMedia").To(Constants.DatabaseSchema.Tables.MediaVersion).Do(); // that is not supported on SqlCE //Rename.Column("versionId").OnTable(Constants.DatabaseSchema.Tables.MediaVersion).To("id").Do(); AddColumn <MediaVersionDto>("id", out var sqls); if (Database.DatabaseType.IsSqlCe()) { // SQLCE does not support UPDATE...FROM var temp2 = Database.Fetch <dynamic>($@"SELECT v.versionId, v.id FROM cmsContentVersion v JOIN umbracoNode n on v.contentId=n.id WHERE n.nodeObjectType='{Constants.ObjectTypes.Media}'"); foreach (var t in temp2) { Execute.Sql($"UPDATE {Constants.DatabaseSchema.Tables.MediaVersion} SET id={t.id} WHERE versionId='{t.versionId}'").Do(); } } else { Database.Execute($@"UPDATE {Constants.DatabaseSchema.Tables.MediaVersion} SET id=v.id FROM {Constants.DatabaseSchema.Tables.MediaVersion} m JOIN cmsContentVersion v on m.versionId = v.versionId JOIN umbracoNode n on v.contentId=n.id WHERE n.nodeObjectType='{Constants.ObjectTypes.Media}'"); } foreach (var sql in sqls) { Execute.Sql(sql).Do(); } AddColumn <MediaVersionDto>("path", out sqls); Execute.Sql($"UPDATE {Constants.DatabaseSchema.Tables.MediaVersion} SET path=mediaPath").Do(); foreach (var sql in sqls) { Execute.Sql(sql).Do(); } // we had to run sqls to get the NULL constraints, but we need to get rid of most Delete.KeysAndIndexes(Constants.DatabaseSchema.Tables.MediaVersion).Do(); Delete.Column("mediaPath").FromTable(Constants.DatabaseSchema.Tables.MediaVersion).Do(); Delete.Column("versionId").FromTable(Constants.DatabaseSchema.Tables.MediaVersion).Do(); Delete.Column("nodeId").FromTable(Constants.DatabaseSchema.Tables.MediaVersion).Do(); }
public override void Down() { Execute.Sql(@"DELETE ActivityTypes WHERE TypeLabel = 'Learning Hub Resource'"); Delete.ForeignKey("FK_LearningLogItems_ActivityTypeID_ActivityTypes_ID").OnTable("LearningLogItems"); Rename.Column("ID").OnTable("ActivityTypes").To("ApptTypeID"); // This foreign key was incorrectly named before it was update in the Up, so reverting it to the old bad name Alter.Table("LearningLogItems") .AlterColumn("ActivityTypeID").AsInt32().NotNullable() .ForeignKey("FK_LearningLogItems_AdminUsers", "ActivityTypes", "ApptTypeID"); Rename.Table("ActivityTypes").To("AppointmentTypes"); }
public override void Up() { LogProvider.Log.Info("Preparing migration #24."); try { if (Schema.Table(playerNotesTempTableName).Exists()) { Delete.Table(playerNotesTempTableName); } if (Schema.Table(playerNotesTableName).Exists()) { if (Schema.Table(playerNotesTableName).Index(playerNotesIndexName).Exists()) { Delete.Index(playerNotesIndexName).OnTable(playerNotesTableName); } Rename.Table(playerNotesTableName).To(playerNotesTempTableName); } Create.Table(playerNotesTableName) .WithColumn("PlayerNoteId").AsInt32().PrimaryKey().NotNullable() .WithColumn("PlayerId").AsInt32().NotNullable() .WithColumn("Note").AsString().NotNullable() .WithColumn("CardRange").AsString().Nullable() .WithColumn("Timestamp").AsDateTime().Nullable() .WithColumn("IsAutoNote").AsBoolean().NotNullable().WithDefaultValue(false) .WithColumn("GameNumber").AsInt64().Nullable() .WithColumn("PokerSiteId").AsInt32().NotNullable(); Create.Index(playerNotesIndexName).OnTable(playerNotesTableName).OnColumn("PlayerId"); if (Schema.Table(playerNotesTempTableName).Exists()) { Execute.Sql($"INSERT INTO {playerNotesTableName} (PlayerNoteId, PlayerId, Note, PokerSiteId) SELECT PlayerNoteId, PlayerId, Note, PokerSiteId FROM {playerNotesTempTableName} WHERE Note is not null"); Delete.Table(playerNotesTempTableName); } } catch (Exception e) { LogProvider.Log.Error(this, "Migration #24 failed.", e); throw; } LogProvider.Log.Info("Migration #24 executed."); }
public override void Up() { Rename.Table("AppointmentTypes").To("ActivityTypes"); Delete.ForeignKey("FK_LearningLogItems_AdminUsers").OnTable("LearningLogItems"); Rename.Column("ApptTypeID").OnTable("ActivityTypes").To("ID"); Alter.Table("LearningLogItems") .AlterColumn("ActivityTypeID").AsInt32().NotNullable() .ForeignKey("ActivityTypes", "ID"); Execute.Sql(@"INSERT INTO ActivityTypes (TypeLabel, TypeCaption, SchedulerOrderNum) VALUES ('Learning Hub Resource', 'Learning Hub Resource', (SELECT Max(SchedulerOrderNum)+1 FROM ActivityTypes))"); }
public override void Up() { Rename.Table("SubNode").To("Port"); Rename.Column("subNodeId").OnTable("Port").To("portId"); Alter.Column("pulseCount").OnTable("Port").AsInt32().Nullable(); Alter.Table("Port") .AddColumn("direction").AsFixedLengthAnsiString(1) .AddColumn("type").AsFixedLengthAnsiString(1) .AddColumn("state").AsBoolean().Nullable() .AddColumn("value").AsInt16().Nullable(); Update.Table("Port").Set(new { direction = "S", type = "P" }).AllRows(); Alter.Column("direction").OnTable("Port").AsFixedLengthAnsiString(1).NotNullable(); Alter.Column("type").OnTable("Port").AsFixedLengthAnsiString(1).NotNullable(); Create.UniqueConstraint("UC_nodeId_number").OnTable("Port").Columns("nodeId", "number"); Create.Index("IX_nodeId_number").OnTable("Port").OnColumn("nodeId").Ascending().OnColumn("number").Ascending(); }
protected override void MainDbUpgrade() { Rename.Table("QualityProfiles").To("Profiles"); Alter.Table("Profiles").AddColumn("Language").AsInt32().Nullable(); Alter.Table("Profiles").AddColumn("GrabDelay").AsInt32().Nullable(); Alter.Table("Profiles").AddColumn("GrabDelayMode").AsInt32().Nullable(); Execute.Sql("UPDATE Profiles SET Language = 1, GrabDelay = 0, GrabDelayMode = 0"); //Rename QualityProfileId in Series Alter.Table("Series").AddColumn("ProfileId").AsInt32().Nullable(); Execute.Sql("UPDATE Series SET ProfileId = QualityProfileId"); //Add HeldReleases Create.TableForModel("PendingReleases") .WithColumn("SeriesId").AsInt32() .WithColumn("Title").AsString() .WithColumn("Added").AsDateTime() .WithColumn("ParsedEpisodeInfo").AsString() .WithColumn("Release").AsString(); }
public override void Up() { Rename.Table("Resolucao").InSchema("dbo").To("ResolucaoQuestao"); Create.Table("ResolucaoTarefa") .WithColumn("id") .AsInt32() .PrimaryKey("pk_resolucaotarefa") .Identity() .WithColumn("nota") .AsDouble() .Nullable() .WithColumn("enviada") .AsBoolean() .Nullable() .WithColumn("tarefa_id") .AsInt32() .ForeignKey("Tarefa", "id") .WithColumn("aluno_id") .AsInt32() .ForeignKey("Aluno", "id"); }
private void MigrateContent() { // if the table has already been renamed, we're done if (TableExists(Constants.DatabaseSchema.Tables.Content)) { return; } // rename columns if (ColumnExists(PreTables.Content, "contentType")) { ReplaceColumn <ContentDto>(PreTables.Content, "contentType", "contentTypeId"); } // drop columns if (ColumnExists(PreTables.Content, "pk")) { Delete.Column("pk").FromTable(PreTables.Content).Do(); } // rename table Rename.Table(PreTables.Content).To(Constants.DatabaseSchema.Tables.Content).Do(); }
public override void Migrate() { // delete *all* keys and indexes - because of FKs Delete.KeysAndIndexes().Do(); // drop and create columns Delete.Column("pk").FromTable("cmsDataType").Do(); // rename the table Rename.Table("cmsDataType").To(Constants.DatabaseSchema.Tables.DataType).Do(); // create column AddColumn <DataTypeDto>(Constants.DatabaseSchema.Tables.DataType, "config"); Execute.Sql(Sql().Update <DataTypeDto>(u => u.Set(x => x.Configuration, string.Empty)).SQL).Do(); // re-create *all* keys and indexes foreach (var x in DatabaseSchemaCreator.OrderedTables) { Create.KeysAndIndexes(x).Do(); } // renames Execute.Sql(Sql() .Update <DataTypeDto>(u => u.Set(x => x.EditorAlias, "Umbraco.ColorPicker")) .Where <DataTypeDto>(x => x.EditorAlias == "Umbraco.ColorPickerAlias").SQL).Do(); // from preValues to configuration... var sql = Sql() .Select <DataTypeDto>() .AndSelect <PreValueDto>(x => x.Alias, x => x.SortOrder, x => x.Value) .From <DataTypeDto>() .InnerJoin <PreValueDto>().On <DataTypeDto, PreValueDto>((left, right) => left.NodeId == right.NodeId) .OrderBy <DataTypeDto>(x => x.NodeId) .AndBy <PreValueDto>(x => x.SortOrder); var dtos = Database.Fetch <PreValueDto>(sql).GroupBy(x => x.NodeId); foreach (var group in dtos) { var dataType = Database.Fetch <DataTypeDto>(Sql() .Select <DataTypeDto>() .From <DataTypeDto>() .Where <DataTypeDto>(x => x.NodeId == group.Key)).First(); var aliases = group.Select(x => x.Alias).Distinct().ToArray(); if (aliases.Length == 1 && string.IsNullOrWhiteSpace(aliases[0])) { // array-based prevalues var values = new Dictionary <string, object> { ["values"] = group.OrderBy(x => x.SortOrder).Select(x => x.Value).ToArray() }; dataType.Configuration = JsonConvert.SerializeObject(values); } else { // assuming we don't want to fall back to array if (aliases.Length != group.Count() || aliases.Any(string.IsNullOrWhiteSpace)) { throw new InvalidOperationException($"Cannot migrate datatype w/ id={dataType.NodeId} preValues: duplicate or null/empty alias."); } // dictionary-base prevalues var values = group.ToDictionary(x => x.Alias, x => x.Value); dataType.Configuration = JsonConvert.SerializeObject(values); } Database.Update(dataType); } }