如何从Orchard数据库中删除模块的数据?

Ali*_*ran 14 c# asp.net orchardcms

我已经安装了一个模块,在迁移和创建表之后,Orchard.sdf我希望清除所有表并回滚迁移所做的所有更改.

我放弃了表格,但我想应该删除一些元数据.

我们如何完全清除模块数据?谢谢.

Sha*_*tin 18

完全卸载涉及删除与模块名称,功能名称及其名称空间相关联的数据库表和行.这是一个对我们有用的过程.

1:运行orchard.exe > package uninstall Orchard.Module.MyModuleName

2:然后,打开SQL Server Management Studio并删除与您的模块关联的以下数据库表.

MyModuleName_MyFeatureNameRecord
Run Code Online (Sandbox Code Playgroud)

3:对下表列进行通配符搜索.请务必搜索MyModuleName,MyNamespaceName,MyFeatureName等.您最终将删除所有这些行,但尚未删除.

SELECT *  FROM Orchard_Framework_ContentTypeRecord  WHERE Name LIKE '%%'
SELECT *  FROM Settings_ContentTypeDefinitionRecord  WHERE Name LIKE '%%'
SELECT *  FROM Settings_ContentPartDefinitionRecord  WHERE Name LIKE '%%'
SELECT *  FROM Settings_ShellFeatureRecord  WHERE Name LIKE '%%'
SELECT *  FROM Settings_ShellFeatureStateRecord  WHERE Name LIKE '%%'
SELECT *  FROM Orchard_Framework_DataMigrationRecord  WHERE DataMigrationClass LIKE '%%'
Run Code Online (Sandbox Code Playgroud)

4:从上面的搜索结果中,记下这些表中行的Id值.

Orchard_Framework_ContentTypeRecord.Id
Settings_ContentTypeDefinitionRecord.Id 
Run Code Online (Sandbox Code Playgroud)

5:现在您已经记录了Id,删除了您在上面的步骤3中找到的行.

6:使用步骤4中收集的ID,删除下表中的行.

SELECT * FROM Settings_ContentTypePartDefinitionRecord 
    WHERE ContentTypeDefinitionRecord_Id IN()

SELECT * FROM Orchard_Framework_ContentItemRecord 
    WHERE ContentType_id IN ()
Run Code Online (Sandbox Code Playgroud)

这对我有用.


fg_*_*rda 5

我不知道是否有适当的方法,但是清理Orchard_Framework_DataMigrationRecord应该足够了:datamigration检查此表以查找当前功能版本,如果已经有条目,则您可能无法重新启用该功能。特征。还要检查Settings_ShellFeatureRecordSettings_ShellFeatureStateRecordSettings_ContentPartDefinitionRecordSettings_ContentTypeDefinitionRecord

最后,其他表中可能有很多引用,但我认为没有危险。