I've inherited the maintenance of a DotNetNuke (v6.2.0.1610) site, and one of the things I'd like to do is to tidy up the database tables being used.
It looks like there might have been two installations of DNN into the same database (I'm guessing, I don't know its history and cannot find out), I'm making this assumption because there are two sets of DotNetNuke tables.
For example, we have:
dbo.Portals
, dbo.PortalSettings
, dbo.Profile
, dbo.Roles
, etc.
However, then we also have the same set, prefixed with dnn_
-
dbo.dnn_Portals
, dbo.dnn_PortalSettings
, dbo.dnn_Profile
, dbo.dnn_Roles
, etc.
I spent a good while tearing my hair out when I could not get our portal to load, when I discovered it is because I was editing the dbo.PortalAlias
table and I needed to be editing the dbo.dnn_PortalAlias
table instead.
I wanted to avoid this future maintenance headache, so I backed up the database, and set about deleting all the tables without the dnn_
prefix (web.config specifies objectQualifier="dnn_"
). I diligently ensured there was a matching dnn_
table before deleting any.
At first it seemed fine - the portal loaded and all the content was there, I thought I was on to a winner. However when I logged in and accessed the site admin section, that's when I started to get lots of error messages. So I figured I'd deleted too much, I restored the backup, and all is well - portal working again.
However, I really would like to get rid of the unnecessary tables, because no doubt at some point in the future I'll start doing some work on the database, forget about the dnn_
prefix and waste a bunch of time wondering why something isn't working.
So, as a bit of a DotNetNuke newbie, I'm after some help - how can I know what tables are in use, what aren't, and how can I set about tidying up the SQL Server tables? Thanks.
Cross-posted at StackOverflow: http://stackoverflow.com/questions/28166935/tidy-up-dotnetnuke-database-tables