3 Mayıs 2010 Pazartesi

DotNetNuke 5.3.1'den DotNetNuke 5.4.1'e Yükseltme Yaparken

Bu sabah TRDNN sürümünü DNN 5.3.1'den DotNetNuke 5.4.1'e yükseltmeye çalışırken epey uğraşmama rağmen aşağıdaki hata mesajından bir türlü kurtulamadım.

Detaylar için 05.04.01.log dosyasına baktığımda ise aşağıdaki içerik ile karşılaştım.

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

TRDNN'de Türkçe Dil paketi etkin olduğu için bu sorunun gerçekleştiğini düşünüyorum. Çalışmalarım sürüyor, eğer sorunu düzeltebilirsem çözümü buradan paylaşacağım.

Ekleme & Sorun Çözüldü

Arkadaşlar saatler süren denemelerim sonunda 2 yöntem ile sorunu çözebildim. İlk yöntemi daha uzun süreceği ve kodda değişikliklik yapmanız gerektiği için anlatmayacağım.


İkinci yöntem için, Yönetim > Dil Kütüphanesi sayfasından sitenizin varsayılan dilini en-US yapmanız gerekiyor. Daha sonra upgrade işlemini başarılı bir şekilde tamamlayabilirsiniz.


Ek Bilgi

Her ne kadar güncelleme başarılı bir şekilde tamamlanmış olsa da varsayılan dili tekrar tr-TR yaptıktan sonra temanızdaki dil seçim düğmesine (Türk bayrağına) tıkladığınızda sorun devam edecek.

Sorunun 15 Mayıs 2010'da duyurulması planlanan DotNetNuke 5.4.2 sürümünde giderileceğini öğrendim.