Today, i was trying to update one of my websites that running
DotNetNuke 5.3.1 to
DotNetNuke 5.4.1. However, i couldn't get it working. I tried several times thanks to validated backup. All of them gave me same result each time i tried.
See the following image:
I had to check
05.04.01.log file for more information and saw the following entry:
System.Data.SqlClient.SqlException: String or binary data would be truncated.
The statement has been terminated.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at DotNetNuke.Data.SqlDataProvider.ExecuteADOScript(String SQL)
at DotNetNuke.Data.SqlDataProvider.ExecuteScript(String Script, Boolean UseTransactions)
/* ensure existing portal default languages have valid localization records */
DECLARE @PortalID int
DECLARE @DefaultLanguage nvarchar(10)
--Iterate through each portal
DECLARE Portals_Cursor CURSOR FOR
SELECT PortalID, DefaultLanguage
FROM dbo.Portals
OPEN Portals_Cursor
--get first
FETCH NEXT FROM Portals_Cursor
into @PortalID, @DefaultLanguage
WHILE @@FETCH_STATUS = 0
BEGIN
exec dbo.EnsureLocalizationExists @PortalID,@DefaultLanguage
FETCH NEXT FROM Portals_Cursor
into @PortalID, @DefaultLanguage
END
CLOSE Portals_Cursor
DEALLOCATE Portals_Cursor
I'm still working on it, if i can find a solution or a workaround, i am going to share it here.
Update & Solution
Ok guys, if you have trouble like this, most likely you are using a non en-US DNN installation and your default language for Site is a language other than en-US.
This confuses the system and the result is trouble. Since i am a trouble solver :D i am going to tell you the magic trick... Don't forget to say thanks because i had to deal it with several hours.
All you have to do is simply enable en-US as default language under Admin > Languages and run the upgrade progress again. After upgrade it is safe to revert back to your custom language.
Warm regards :)