2

カスタム コンテンツ タイプの 1 つの名前を変更して、作業中の新しい Orchard モジュール用にその名前を解放できるようにすることを計画しています。この SO answerで提案されているように、移行クラスで Schema.ExecuteSql を使用したいと思っていますが、必要なすべての更新を確実に把握したいと考えています。

これまでのところ、次のテーブルのフィールドを更新する必要があることは理解しています。

  • Orchard_Framework_ContentTypeRecord
  • Settings_ContentTypeDefinitionRecord
  • Settings_ContentPartDefinitionRecord

また、実行する必要がある更新 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

コンテンツ タイプの名前を完全に変更するために名前を変更する必要がある、他に不足しているものはありますか?

4

1 に答える 1