【问题标题】:Tidy up DotNetNuke database tables整理 DotNetNuke 数据库表
【发布时间】:2015-01-27 09:22:23
【问题描述】:

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

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

例如,我们有:
dbo.Portalsdbo.PortalSettingsdbo.Profiledbo.Roles

不过,那我们也有相同的集合,前缀为dnn_ -
dbo.dnn_Portalsdbo.dnn_PortalSettingsdbo.dnn_Profiledbo.dnn_Roles

当我无法加载我们的门户网站时,我花了很长时间才发现这是因为我正在编辑dbo.PortalAlias 表,而我需要编辑dbo.dnn_PortalAlias 表。

我想避免这种未来维护的麻烦,所以我备份了数据库,并着手删除所有没有dnn_ 前缀的表(web.config 指定objectQualifier="dnn_")。在删除任何表之前,我努力确保有一个匹配的 dnn_ 表。

起初看起来还不错 - 门户已加载,所有内容都在那里,我以为我赢了。但是,当我登录并访问站点管理部分时,我开始收到大量错误消息。所以我认为我删除了太多,我恢复了备份,一切都很好 - 门户再次工作。

但是,我真的很想摆脱不必要的表,因为毫无疑问在将来的某个时候我会开始在数据库上做一些工作,忘记 dnn_ 前缀并浪费大量时间想知道为什么有些东西不起作用。

所以,作为一个 DotNetNuke 新手,我正在寻求一些帮助 - 我如何知道哪些表正在使用,哪些未使用,以及如何着手整理 SQL Server 表?谢谢。

【问题讨论】:

    标签: dotnetnuke dotnetnuke-6


    【解决方案1】:

    我建议您只删除具有“dnn_”前缀的等效表。
    DNN 数据库应至少包含前缀为“aspnet_”的表,用于在门户网站上进行身份验证。
    然后,您可以拥有一些可以使用没有“dnn_”前缀的表的扩展。这取决于这些扩展在安装过程中使用的 sql 脚本。我希望这些扩展不会在没有“dnn_”前缀的 dnn 表上运行查询。否则它可以解释您遇到的错误。
    您可以使用 SQL Server Profiler 进行检查。

    【讨论】:

      【解决方案2】:

      原来有一个视图 dnn_Lists 仍然在引用 dbo.Lists 而没有 dnn_ 前缀。

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

      谢谢

      【讨论】:

        【解决方案3】:

        删除所有没有“dnn_”的表是有意义的,但你说你遇到了问题。

        如果您有时间和耐心并且坚持整理,我会一次删除 1 个表并测试它上次破坏的管理功能,直到找到罪魁祸首。这是一个远大的目标,但这是我的方法。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-03-07
          • 1970-01-01
          • 2011-06-13
          • 1970-01-01
          • 2018-02-18
          • 1970-01-01
          • 2018-07-25
          • 2013-02-14
          相关资源
          最近更新 更多