整理DotNetNuke数据库表

整理DotNetNuke数据库表,dotnetnuke,dotnetnuke-6,Dotnetnuke,Dotnetnuke 6,我继承了DotNetNuke v6.2.0.1610站点的维护,我想做的一件事是整理正在使用的数据库表 看起来可能有两个DNN安装到了同一个数据库中,我猜,我不知道它的历史,也无法发现,我做这个假设是因为有两组DotNetNuke表 例如,我们有: Portals、dbo.PortalSettings、dbo.Profile、dbo.Roles等 但是,我们也有相同的集合,前缀为dnn_- dbo.dnn_门户、dbo.dnn_门户设置、dbo.dnn_配置文件、dbo.dnn_角色等 当我无法

我继承了DotNetNuke v6.2.0.1610站点的维护,我想做的一件事是整理正在使用的数据库表

看起来可能有两个DNN安装到了同一个数据库中,我猜,我不知道它的历史,也无法发现,我做这个假设是因为有两组DotNetNuke表

例如,我们有: Portals、dbo.PortalSettings、dbo.Profile、dbo.Roles等

但是,我们也有相同的集合,前缀为dnn_- dbo.dnn_门户、dbo.dnn_门户设置、dbo.dnn_配置文件、dbo.dnn_角色等

当我无法加载我们的门户时,我花了很长一段时间绞尽脑汁,当我发现这是因为我正在编辑dbo.PortalAlias表,而我需要编辑dbo.dnn_PortalAlias表

我希望避免将来的维护难题,因此我备份了数据库,并开始删除所有不带dnn_u前缀的表。web.config指定objectQualifier=dnn_u。在删除任何数据之前,我努力确保有一个匹配的dnn_u表

一开始它看起来不错——门户加载了,所有的内容都在那里,我以为我就要赢了。然而,当我登录并访问站点管理部分时,我开始收到很多错误消息。所以我想我删除了太多,我恢复了备份,一切都很好——门户网站又开始工作了

但是,我真的希望去掉不必要的表,因为毫无疑问,在将来的某个时候,我将开始对数据库进行一些工作,忘记dnn_uu前缀,并浪费大量时间思考为什么有些东西不起作用


因此,作为一个DotNetNuke新手,我需要一些帮助-我如何知道哪些表正在使用,哪些没有使用,以及如何开始整理SQL Server表?谢谢。

我建议您只删除带有dnn_uu前缀的表。 DNN数据库应至少包含aspnet_uuuu前缀表,这些表用于门户上的身份验证。 然后,您可以使用一些扩展,这些扩展可以使用没有dnn_uu前缀的表。这取决于这些扩展在安装期间使用的sql脚本。我希望这些扩展不会在没有dnn_uu前缀的dnn表上运行查询。否则,它可以解释您遇到的错误。
您可以使用SQL Server探查器来检查它。

原来有一个视图,dnn_列表,它仍然引用没有dnn_前缀的dbo.list

我修复了这个视图,现在一切都好了。 PS:事实证明,在用户表中为您登录的用户设置IsSuperUser=1是很有用的,因为这样您就可以获得完整的异常详细信息并可以修复它


谢谢

删除所有不带dnn的表是有意义的,但您说您遇到了问题

如果你有时间和耐心,并且坚持要把事情收拾好,我会一次删除一个表,并测试它上次破坏的管理功能,直到你找到罪魁祸首。这是一个远大的目标,但这是我将采取的方法

这里可能发生的情况是,您可能安装了忽略objectQualifier的第三个模块,当您删除这些表时,您就破坏了该模块