モジュールをインストールし、移行してテーブルを作成した後、Orchard.sdf
すべてのテーブルをクリアし、移行によって行われたすべての変更をロールバックしたいと考えています。
テーブルを削除しましたが、いくつかのメタデータを削除する必要があると思います。
モジュールのデータを完全に消去するにはどうすればよいですか? ありがとう。
モジュールをインストールし、移行してテーブルを作成した後、Orchard.sdf
すべてのテーブルをクリアし、移行によって行われたすべての変更をロールバックしたいと考えています。
テーブルを削除しましたが、いくつかのメタデータを削除する必要があると思います。
モジュールのデータを完全に消去するにはどうすればよいですか? ありがとう。
それを行う適切な方法があるかどうかはわかりませんが、Orchard_Framework_DataMigrationRecordをクリーンアップするだけで十分です。datamigrationはこのテーブルをチェックして現在の機能バージョンを見つけます。すでにエントリがある場合は、再度有効にできない可能性があります。特徴。また、 Settings_ShellFeatureRecord、Settings_ShellFeatureStateRecord、Settings_ContentPartDefinitionRecord 、およびSettings_ContentTypeDefinitionRecordも確認してください。
最後に、他の表には多くの参照があるかもしれませんが、危険なことは何もないと思います。
これは、テナントでテーブル プレフィックスを使用する場合にこれを簡単にする SQL クエリ スニペットです。
USE DatabaseName
DECLARE @moduleName varchar(255);
DECLARE @tableName varchar(255);
DECLARE @tablePrefix varchar(255);
SET @moduleName = '%Orchard.YourModule%';
SET @tablePrefix = 'YourTablePrefix';
SET @tableName = @tablePrefix + '_Orchard_Framework_ContentTypeRecord';
DECLARE @sql nvarchar(4000)
SELECT @sql = ' SELECT * ' +
' FROM dbo.' + quotename(@tableName) +
' WHERE Name LIKE @moduleName'
EXEC sp_executesql @sql, N'@moduleName varchar(255)', @moduleName;
SET @tableName = @tablePrefix + '_Settings_ContentTypeDefinitionRecord';
SELECT @sql = ' SELECT * ' +
' FROM dbo.' + quotename(@tableName) +
' WHERE Name LIKE @moduleName'
EXEC sp_executesql @sql, N'@moduleName varchar(255)', @moduleName;
SET @tableName = @tablePrefix + '_Settings_ContentPartDefinitionRecord';
SELECT @sql = ' SELECT * ' +
' FROM dbo.' + quotename(@tableName) +
' WHERE Name LIKE @moduleName'
EXEC sp_executesql @sql, N'@moduleName varchar(255)', @moduleName;
SET @tableName = @tablePrefix + '_Settings_ShellFeatureRecord';
SELECT @sql = ' SELECT * ' +
' FROM dbo.' + quotename(@tableName) +
' WHERE Name LIKE @moduleName'
EXEC sp_executesql @sql, N'@moduleName varchar(255)', @moduleName;
SET @tableName = @tablePrefix + '_Settings_ShellFeatureStateRecord';
SELECT @sql = ' SELECT * ' +
' FROM dbo.' + quotename(@tableName) +
' WHERE Name LIKE @moduleName'
EXEC sp_executesql @sql, N'@moduleName varchar(255)', @moduleName;
SET @tableName = @tablePrefix + '_Orchard_Framework_DataMigrationRecord';
SELECT @sql = ' SELECT * ' +
' FROM dbo.' + quotename(@tableName) +
' WHERE DataMigrationClass LIKE @moduleName'
EXEC sp_executesql @sql, N'@moduleName varchar(255)', @moduleName;