Upgrading from 7.2.2 to 7.3.4 I get errors during the Database updates for 7.3.3 and 7.3.4 which are recorded in the Logs. I've restored and retried with the same result.
It looks like the updates have something to do with Localization, but it's hard for me looking at the scripts and browsing the database tables to figure out what is wrong.
I have no doubt that there is some kind of minor corruption the database, but I can't seem to find it.
Below are the two (similar but different) errors I get during the upgrade.
Log for 07.03.03
System.Data.SqlClient.SqlException (0x80131904): Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. The statement has been terminated. at System.Data.SqlClient.SqlConnection. (SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at DotNetNuke.Data.SqlDataProvider.ExecuteScriptInternal(String connectionString, String script) ClientConnectionId:e77f4514-5f2c-43af-af18-b7b75834d924 /***** Localize Countries and Regions DNN-5568, DNN-5567 *****/ UPDATE dbo.[UserProfile] SET PropertyValue = l.Value FROM dbo.[UserProfile] up INNER JOIN dbo.[ProfilePropertyDefinition] pd ON pd.PropertyDefinitionID = up.PropertyDefinitionID INNER JOIN dbo.[Lists] l ON l.Text = up.PropertyValue AND l.ListName = 'Country' INNER JOIN dbo.[Lists] dt ON dt.EntryID = pd.DataType WHERE dt.Value = 'Country' System.Data.SqlClient.SqlException (0x80131904): Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. The statement has been terminated. at System.Data.SqlClient.SqlConnection. (SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at DotNetNuke.Data.SqlDataProvider.ExecuteScriptInternal(String connectionString, String script) ClientConnectionId:a53b1421-16e4-421f-acff-5347de64579b UPDATE dbo.[UserProfile] SET PropertyValue = l.Value FROM dbo.[UserProfile] up INNER JOIN dbo.[ProfilePropertyDefinition] pd ON pd.PropertyDefinitionID = up.PropertyDefinitionIDINNER JOIN dbo.[Lists] l ON l.Text = up.PropertyValue AND l.
ListName = 'Region' INNER JOIN dbo.[Lists] dt ON dt.EntryID = pd.DataType WHERE dt.Value = 'Region'
Log for 07.03.04
System.Data.SqlClient.SqlException (0x80131904): Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. The statement has been terminated. at System.Data.SqlClient.SqlConnection. (SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at DotNetNuke.Data.SqlDataProvider.ExecuteScriptInternal(String connectionString, String script) ClientConnectionId:4fa8cc7a-65db-4115-8f81-bd5180e86a46 /***** DNN-6031 Change binding from Value to ID for Country and Region in profile and use short version of region code for value again *****/ UPDATE dbo.[UserProfile] SET PropertyValue = l.Value FROM dbo.[UserProfile] up INNER JOIN dbo.[ProfilePropertyDefinition] pd ON pd.PropertyDefinitionID = up.PropertyDefinitionID INNER JOIN dbo.[Lists] l ON l.Text = up.PropertyValue AND l.ListName = 'Country' INNER JOIN dbo.[Lists] dt ON dt.EntryID = pd.DataType WHERE dt.Value = 'Country' System.Data.SqlClient.SqlException (0x80131904): Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. The statement has been terminated. at System.Data.SqlClient.SqlConnection. (SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at DotNetNuke.Data.SqlDataProvider.ExecuteScriptInternal(String connectionString, String script) ClientConnectionId:dbdde1d3-1801-4632-958e-516115671fe2 UPDATE dbo.[UserProfile] SET PropertyValue = l.Value FROM dbo.[UserProfile] up INNER JOIN dbo.[ProfilePropertyDefinition] pd ON pd.PropertyDefinitionID = up.PropertyDefinitionID INNER JOIN dbo.[Lists] l ON l.Text = up.PropertyValue AND l.ListName = 'Region' INNER JOIN dbo.[Lists] dt ON dt.EntryID = pd.DataType WHERE dt.Value = 'Region'
I've looked through the UserProfile, ProfilePropertyDefinition, and Lists Tables after the first failure and I did find a duplicate record in the UserProfile Table which I removed. But, the next attempt at an upgrade also failed with the same two errors.
Where should I be looking?