I installed an empty 52 site and used this site to upgrade the database, but the upgrade failed.
See stack trace :
Executing database script "C:\Program Files (x86)\EPiServer\CMS\6.0.530.0\Upgrade\Database\sql\0005_0002_0375_0236to0006_0000_0431_0001.sql"
An error has occured and the transaction will be rolled back
Rolledback
An unhandled error has occured:
Violation of PRIMARY KEY constraint 'PK_tblPageDefinitionGroup'. Cannot insert
duplicate key in object 'dbo.tblPageDefinitionGroup'.
When executing
At C:\Program Files (x86)\EPiServer\CMS\6.0.530.0\Upgrade\System Scripts\Upgrad
e Site (SqlServer).ps1:286 char:25
+ Execute-EPiSqlSvrScript <<<< -EPiServerScript -ScriptPath $file.FullName -S
qlServerName $dbConnection.DataSource -DatabaseName $dbConnection.InitialCatalo
g -LoginName $dbConnection.UserID -LoginPassword $dbConnection.Password
=Get-EPiIsBulkInstalling
Error - System.Management.Automation.CmdletInvocationException: Violation of PRIMARY KEY constraint 'PK_tblPageDefinitionGroup'. Cannot insert duplicate key in object 'dbo.tblPageDefinitionGroup'. ---> System.Data.SqlClient.SqlException: Violation of PRIMARY KEY constraint 'PK_tblPageDefinitionGroup'. Cannot insert duplicate key in object 'dbo.tblPageDefinitionGroup'.
at EPiServer.Install.SqlServer.Installers.SqlServerItemInstaller.HandleSqlException(SqlCommand cmd, SqlException ex)
at EPiServer.Install.SqlServer.Installers.SqlScriptInstaller.ExecuteSqlScript(String filePath, IDictionary parameters, IDictionary stateSaver)
at EPiServer.Install.SqlServer.Installers.EPiServerSqlScriptInstaller.InstallInternal(IDictionary stateSaver)
at EPiServer.Install.SqlServer.Installers.EPiServerSqlScriptInstaller.Install(IDictionary stateSaver)
at EPiServer.Install.InstallationManager.Install(Installer installer)
at EPiServer.Install.SqlServer.SqlServerInstallationManager.ExecuteDatabaseScript(String sqlServerName, Nullable`1 sqlServerPort, String databaseName, String loginName, String loginPassword, String scriptFilePath, Boolean avoidDbTransaction, Boolean isEPiServerScript, IDictionary parameters)
at EPiServer.Install.SqlServer.Cmdlets.ExecuteSqlScriptCmdlet.ProcessRecord()
at System.Management.Automation.Cmdlet.DoProcessRecord()
at System.Management.Automation.CommandProcessor.ProcessRecord()
--- End of inner exception stack trace ---
at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate)
at System.Management.Automation.PipelineNode.Execute(Array input, Pipe outputPipe, ArrayList& resultList, ExecutionContext context)
at System.Management.Automation.StatementListNode.ExecuteStatement(ParseTreeNode statement, Array input, Pipe outputPipe, ArrayList& resultList, ExecutionContext context)
After some try/failures - I managed to upgrade the the database.
My main problem was that I first installed an empty Episerver CMS 6 (without database) website, modified the connectionstring to the a database with version 5.2 and tried to upgrade. Episerver Deployment Center can obviously not upgrade the database from 5.2 to 6 if the website is already in version 6.
It is therefore necessary to use a 5.2 website as a tool to upgrade the database.
Another thing is that the upgrade procedure is running in context of the windows user you are using. This user must therefore have necessary accessrights to the database thats beeing upgraded.
Kind regards,
Jon Haakon
Hi,
I'm trying to upgrade 5.2 to 6 but get the following error:
An error has occured and the transaction will be rolled back
Rolledback
I tried to google the error message
See stack trace:
Executing database script "C:\Program Files (x86)\EPiServer\CMS\6.0.530.0\Upgrade\Database\sql\0005_0002_0375_0236to0006_0000_0431_0001.sql"
An error has occured and the transaction will be rolled back
Rolledback
An unhandled error has occured:
Foreign key 'FK_tblXFormData_tblBigTableIdentity' references invalid table 'dbo
.tblBigTableIdentity'.
Could not create constraint. See previous errors.
When executing
At C:\Program Files (x86)\EPiServer\CMS\6.0.530.0\Upgrade\System Scripts\Upgrad
e Site (SqlServer).ps1:286 char:25
+ Execute-EPiSqlSvrScript <<<< -EPiServerScript -ScriptPath $file.FullName -S
qlServerName $dbConnection.DataSource -DatabaseName $dbConnection.InitialCatalo
g -LoginName $dbConnection.UserID -LoginPassword $dbConnection.Password
=
Get-EPiIsBulkInstalling
Error - System.Management.Automation.CmdletInvocationException: Foreign key 'FK_tblXFormData_tblBigTableIdentity' references invalid table 'dbo.tblBigTableIdentity'.
Could not create constraint. See previous errors. ---> System.Data.SqlClient.SqlException: Foreign key 'FK_tblXFormData_tblBigTableIdentity' references invalid table 'dbo.tblBigTableIdentity'.
Could not create constraint. See previous errors.
at EPiServer.Install.SqlServer.Installers.SqlServerItemInstaller.HandleSqlException(SqlCommand cmd, SqlException ex)
at EPiServer.Install.SqlServer.Installers.SqlScriptInstaller.ExecuteSqlScript(String filePath, IDictionary parameters, IDictionary stateSaver)
at EPiServer.Install.SqlServer.Installers.EPiServerSqlScriptInstaller.InstallInternal(IDictionary stateSaver)
at EPiServer.Install.SqlServer.Installers.EPiServerSqlScriptInstaller.Install(IDictionary stateSaver)
at EPiServer.Install.InstallationManager.Install(Installer installer)
at EPiServer.Install.SqlServer.SqlServerInstallationManager.ExecuteDatabaseScript(String sqlServerName, Nullable`1 sqlServerPort, String databaseName, String loginName, String loginPassword, String scriptFilePath, Boolean avoidDbTransaction, Boolean isEPiServerScript, IDictionary parameters)
at EPiServer.Install.SqlServer.Cmdlets.ExecuteSqlScriptCmdlet.ProcessRecord()
at System.Management.Automation.Cmdlet.DoProcessRecord()
at System.Management.Automation.CommandProcessor.ProcessRecord()
--- End of inner exception stack trace ---
at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate
at System.Management.Automation.PipelineNode.Execute(Array input, Pipe outputPipe, ArrayList& resultList, ExecutionContext context)
at System.Management.Automation.StatementListNode.ExecuteStatement(ParseTreeNode statement, Array input, Pipe outputPipe, ArrayList& resultList, ExecutionContext context)
Kind regards, Jon Haakon