Orchardcms 用于重命名Orchard自定义内容类型的Sql

Orchardcms 用于重命名Orchard自定义内容类型的Sql,orchardcms,orchardcms-1.8,orchard-modules,Orchardcms,Orchardcms 1.8,Orchard Modules,我计划重命名我的一个自定义内容类型,这样我就可以为我正在开发的一个新的Orchard模块释放它的名称。我希望按照建议在迁移类中使用Schema.ExecuteSql,但我想确保我知道需要进行的所有更新 到目前为止,我了解到我需要更新下表中的字段: Orchard\u框架\u内容类型记录 设置\u内容类型定义记录 设置\u内容PartDefinitionRecord 此外,以下是我需要运行的更新SQL的总体计划: DECLARE @From VARCHAR(50) = 'OriginalNam

我计划重命名我的一个自定义内容类型,这样我就可以为我正在开发的一个新的Orchard模块释放它的名称。我希望按照建议在迁移类中使用Schema.ExecuteSql,但我想确保我知道需要进行的所有更新

到目前为止,我了解到我需要更新下表中的字段:

  • Orchard\u框架\u内容类型记录
  • 设置\u内容类型定义记录
  • 设置\u内容PartDefinitionRecord
此外,以下是我需要运行的更新SQL的总体计划:

DECLARE @From VARCHAR(50) = 'OriginalName'
DECLARE @To VARCHAR(50) = 'NewName'

BEGIN TRANSACTION

BEGIN TRY

    UPDATE [Current_Orchard_Framework_ContentTypeRecord]
    SET [Name] = @To
    WHERE [Name] = @From

    UPDATE [Current_Settings_ContentTypeDefinitionRecord]
    SET [Name] = @To, [DisplayName] = @To
    WHERE [Name] = @From

    UPDATE [dbo].[Current_Settings_ContentPartDefinitionRecord]
    SET [Name] = @To + 'Part'
    WHERE [Name] = @From + 'Part'

    --COMMIT TRANSACTION
    ROLLBACK TRANSACTION /*Rollback while testing*/
END TRY

BEGIN CATCH
    ROLLBACK TRANSACTION
END CATCH

我还缺少什么东西需要重命名才能完全重命名我的内容类型吗?

这可能不是您问题的确切答案,但是-尽管它有一个完整的字符-它可能会帮助您找到解决方案

我在一个果园工作,那里有

  • 很多页
  • 网站上其他页面的大量html链接
  • 导航中有许多自定义链接项(链接到目标页面内的某些锚定,等等)
在我们计划对网站进行delpoy之前不久,出于SEO原因,我们决定从
http://www.example.org/orchard/products/category-name/product-name
http://www.example.org/orchard/shop/category-name/product-name-keyword-anotherkeyword
(必须热爱搜索引擎优化…)


手动执行此操作可能需要很长时间。更改内容项本身中的URL会很容易(但对约20个项目执行此操作仍需要一些时间),但更改所有这些
是否真的有必要?听起来很危险。您可以随时更改内容类型的显示名称。我计划在我的多个网站上使用我的更新插件,并希望让内容类型成为我今后使用的内容类型。出于这个原因,我不想在我的新版本中重新命名它。我觉得很好。您试过了吗?数据更改似乎正常,但现在似乎与我的内容部分类/记录名称和数据库中存储的文本名称不匹配,这实际上导致无法访问内容部分。此外,我的内容部分表仍然保留旧名称Current_XXX_XXX_XXX partrecord。我想我是在想,我是否应该给我的新类型起个别的名字,而不是经历一段贬低旧类型的痛苦。你有办法解决这个问题吗?我也面临同样的情况-
update [Orchard_Live].[dbo].[Common_BodyPartRecord] 
    set Text = cast(replace(cast(Text as nvarchar(max)),     N'/products/category/product-name', N'/shop/category-name/product-name-keyword-anotherkeyword') as ntext)
where cast(Text as nvarchar(max)) LIKE N'%/products/category/product-name%'

update [Orchard_Live].[dbo].[Orchard_Framework_ContentItemRecord] 
set Data = cast(replace(cast(Data as nvarchar(max)), N'/products/category/product-name', N'/shop/category-name/product-name-keyword-anotherkeyword') as ntext)
where cast(Data as nvarchar(max)) LIKE N'%/products/category/product-name%'

update [Orchard_Live].[dbo].[Orchard_Framework_ContentItemVersionRecord] 
set Data = cast(replace(cast(Data as nvarchar(max)), N'/products/category/product-name', N'/shop/category-name/product-name-keyword-anotherkeyword') as ntext)
where cast(Data as nvarchar(max)) LIKE N'%/products/category/product-name%'