I have been having some trouble upgrading an old Umbraco installation to 4.5 (for .NET 4.0).
After some minor issues with the password format (Clear vs. Hashed) and a missing reference in bin releated to IronPython (Microsoft.Scripting.ExtensionAttribute.dll) I was up and running.
However, all is not well in the universe: during install I go an error related to the DB upgrade process (I assume because Umbraco tried to update my DB to the 4.1 layout). I do not recall the exact error and I was stupid enough not to write it down but it was something along the lines of "line xxx error at (".
Initially I thought nothing of it since the website seemed to run A-OK. It was only a few hours later that I noticed that publishing of pages resulted in more errors:
/* PREVIEW */
CREATE TABLE [dbo].[cmsPreviewXml](
[nodeId] [int] NOT NULL,
[versionId] [uniqueidentifier] NOT NULL,
[timestamp] [datetime] NOT NULL,
[xml] [ntext] NOT NULL,
CONSTRAINT [PK_cmsContentPreviewXml] PRIMARY KEY CLUSTERED
(
[nodeId] ASC,
[versionId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
;
I loaded up Enterprise manager and tried to run it against my DB and this is what happened:
Msg 170, Level 15, State 1, Line 11
Line 11: Incorrect syntax near '('.
The exact same error I got when running the Umbraco installer!!!
I therefore think it is a subtle syntax error in Total.sql
Sadly, I don't know enough SQL to fix it myself so I was wondering if anybody could help out and maybe come up with the proper SQL to fix my DB. Probably I should also file this as a bug over at CodePlex?
Sounds like an upgrade issue. When cmsPreviewXml is not in your db, you could try this script.
I created it from a newly installed database on 4.5.2 by generating a script from the sql 2008 server management studio. One thing that I notice is that you say "enterprise manager". Are you still using Sql 2000?
This script is created using sql 2008 server management studio.
/****** Object: Table [dbo].[cmsPreviewXml] Script Date: 10/18/2010 22:52:24 ******/ SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO
CREATE TABLE [dbo].[cmsPreviewXml]( [nodeId] [int] NOT NULL, [versionId] [uniqueidentifier] NOT NULL, [timestamp] [datetime] NOT NULL, [xml] [ntext] NOT NULL, CONSTRAINT [PK_cmsContentPreviewXml] PRIMARY KEY CLUSTERED ( [nodeId] ASC, [versionId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[cmsPreviewXml] WITH CHECK ADD CONSTRAINT [FK_cmsPreviewXml_cmsContent] FOREIGN KEY([nodeId]) REFERENCES [dbo].[cmsContent] ([nodeId]) GO
ALTER TABLE [dbo].[cmsPreviewXml] CHECK CONSTRAINT [FK_cmsPreviewXml_cmsContent] GO
ALTER TABLE [dbo].[cmsPreviewXml] WITH CHECK ADD CONSTRAINT [FK_cmsPreviewXml_cmsContentVersion] FOREIGN KEY([versionId]) REFERENCES [dbo].[cmsContentVersion] ([VersionId]) GO
ALTER TABLE [dbo].[cmsPreviewXml] CHECK CONSTRAINT [FK_cmsPreviewXml_cmsContentVersion] GO
It appears that our faculty is indeed running SQL server 2000 (8.0.2039) so that is probably why I am running into errors? If so that would be a major pain... it will not be easy to convince the DB admins to upgrade the SQL server (even though it's two versions behind).
Wait.... it is possible for me to generate a script in SQL 2008 and say in the generate options that it has to be compatible with SQL 2000.
That way the following script is generated. Looks a bit different.
Does it work?
Note that the context of this script should be run in the context of your database.You can check that in enterprise manager as it is displayed in some dropdown (i can not verify that info as I do not have sql 2000).
If your database is called "dbname", you should add on the first line that says
USE [dbname] GO
now the script
/****** Object: Table [dbo].[cmsPreviewXml] Script Date: 10/20/2010 17:36:33 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[cmsPreviewXml]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) BEGIN CREATE TABLE [dbo].[cmsPreviewXml]( [nodeId] [int] NOT NULL, [versionId] [uniqueidentifier] NOT NULL, [timestamp] [datetime] NOT NULL, [xml] [ntext] NOT NULL, CONSTRAINT [PK_cmsContentPreviewXml] PRIMARY KEY CLUSTERED ( [nodeId] ASC, [versionId] ASC ) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] END GO /****** Object: ForeignKey [FK_cmsPreviewXml_cmsContent] Script Date: 10/20/2010 17:36:33 ******/ IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_cmsPreviewXml_cmsContent]') AND type = 'F') ALTER TABLE [dbo].[cmsPreviewXml] WITH CHECK ADD CONSTRAINT [FK_cmsPreviewXml_cmsContent] FOREIGN KEY([nodeId]) REFERENCES [dbo].[cmsContent] ([nodeId]) GO ALTER TABLE [dbo].[cmsPreviewXml] CHECK CONSTRAINT [FK_cmsPreviewXml_cmsContent] GO /****** Object: ForeignKey [FK_cmsPreviewXml_cmsContentVersion] Script Date: 10/20/2010 17:36:33 ******/ IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_cmsPreviewXml_cmsContentVersion]') AND type = 'F') ALTER TABLE [dbo].[cmsPreviewXml] WITH CHECK ADD CONSTRAINT [FK_cmsPreviewXml_cmsContentVersion] FOREIGN KEY([versionId]) REFERENCES [dbo].[cmsContentVersion] ([VersionId]) GO ALTER TABLE [dbo].[cmsPreviewXml] CHECK CONSTRAINT [FK_cmsPreviewXml_cmsContentVersion] GO
Thanks for the continued interest in my problems. Your initial SQL did not succeed in creating the table in my DB, probably because of the fact that the DB is indeed hosted on SQL2000.
Because of these problems I had a talk with the admin of our servers (working at university here) and we decided to try and migrate the database to an intermediary server running SQL2005. They plan to install a range of SQL2008 machines later on...
This is when things went a bit pear shaped again: we tried to do an import of the existing database on the SQL2000 server from the 2005 one. This seemed to run perfectly okay but before completion two errors popped up:
Operation stopped...
- Create a TransferProvider. (Success)
- Create a temporary file for destructive SQL. (Success)
- Create a temporary file for constructive SQL. (Success)
- Create a temporary XML file for table metadata. (Success)
- Configure the TransferProvider with files and Source/Destination connection info. (Success)
- Execute the transfer with the TransferProvider. (Error)
Messages
* ERROR : errorCode=-1071607780 description=There was an error with output column "contentTypeNodeId" (108) on output "OLE DB Source Output" (12). The column status returned was: "The value could not be converted because of a potential loss of data.".
helpFile=dtsmsg.rll helpContext=0 idofInterfaceWithError={8BDFE893-E9D8-4D23-9739-DA807BCDC2AC} (Microsoft.SqlServer.DtsTransferProvider)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476
- Execute the destructive SQL. (drop tables) (Success)
- Execute the constructive SQL. (create tables) (Success)
- Create a temporary table transfer package for [dbo].[cmsTask] (Success)
- Execute transfer package for [dbo].[cmsTask] (Success)
- Copying to [dbo].[cmsTask] (Success)
* 0 rows transferred
- Create a temporary table transfer package for [dbo].[cmsTaskType] (Success)
- Execute transfer package for [dbo].[cmsTaskType] (Success)
- Copying to [dbo].[cmsTaskType] (Success)
* 1 rows transferred
- Create a temporary table transfer package for [dbo].[dtproperties] (Success)
- Execute transfer package for [dbo].[dtproperties] (Success)
- Copying to [dbo].[dtproperties] (Success)
* 0 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsContent] (Success)
- Execute transfer package for [Mebios].[cmsContent] (Success)
- Copying to [Mebios].[cmsContent] (Success)
* 345 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsContentType] (Success)
- Execute transfer package for [Mebios].[cmsContentType] (Success)
- Copying to [Mebios].[cmsContentType] (Success)
* 17 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsContentTypeAllowedContentType] (Success)
- Execute transfer package for [Mebios].[cmsContentTypeAllowedContentType] (Success)
- Copying to [Mebios].[cmsContentTypeAllowedContentType] (Success)
* 17 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsContentVersion] (Success)
- Execute transfer package for [Mebios].[cmsContentVersion] (Success)
- Copying to [Mebios].[cmsContentVersion] (Success)
* 2181 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsContentXml] (Success)
- Execute transfer package for [Mebios].[cmsContentXml] (Success)
- Copying to [Mebios].[cmsContentXml] (Success)
* 308 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsDataType] (Success)
- Execute transfer package for [Mebios].[cmsDataType] (Success)
- Copying to [Mebios].[cmsDataType] (Success)
* 33 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsDataTypePreValues] (Success)
- Execute transfer package for [Mebios].[cmsDataTypePreValues] (Success)
- Copying to [Mebios].[cmsDataTypePreValues] (Success)
* 11 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsDictionary] (Success)
- Execute transfer package for [Mebios].[cmsDictionary] (Success)
- Copying to [Mebios].[cmsDictionary] (Success)
* 0 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsDocument] (Success)
- Execute transfer package for [Mebios].[cmsDocument] (Success)
- Copying to [Mebios].[cmsDocument] (Success)
* 1882 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsDocumentType] (Success)
- Execute transfer package for [Mebios].[cmsDocumentType] (Success)
- Copying to [Mebios].[cmsDocumentType] (Success)
* 12 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsLanguageText] (Success)
- Execute transfer package for [Mebios].[cmsLanguageText] (Success)
- Copying to [Mebios].[cmsLanguageText] (Success)
* 0 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsMacro] (Success)
- Execute transfer package for [Mebios].[cmsMacro] (Success)
- Copying to [Mebios].[cmsMacro] (Success)
* 18 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsMacroProperty] (Success)
- Execute transfer package for [Mebios].[cmsMacroProperty] (Success)
- Copying to [Mebios].[cmsMacroProperty] (Success)
* 23 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsMacroPropertyType] (Success)
- Execute transfer package for [Mebios].[cmsMacroPropertyType] (Success)
- Copying to [Mebios].[cmsMacroPropertyType] (Success)
* 16 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsMember] (Success)
- Execute transfer package for [Mebios].[cmsMember] (Success)
- Copying to [Mebios].[cmsMember] (Success)
* 0 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsMember2MemberGroup] (Success)
- Execute transfer package for [Mebios].[cmsMember2MemberGroup] (Success)
- Copying to [Mebios].[cmsMember2MemberGroup] (Success)
* 0 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsMemberType] (Success)
- Execute transfer package for [Mebios].[cmsMemberType] (Success)
- Copying to [Mebios].[cmsMemberType] (Success)
* 0 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsPropertyData] (Success)
- Execute transfer package for [Mebios].[cmsPropertyData] (Success)
- Copying to [Mebios].[cmsPropertyData] (Success)
* 16640 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsPropertyType] (Success)
- Execute transfer package for [Mebios].[cmsPropertyType] (Success)
- Copying to [Mebios].[cmsPropertyType] (Success)
* 135 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsStylesheet] (Success)
- Execute transfer package for [Mebios].[cmsStylesheet] (Success)
- Copying to [Mebios].[cmsStylesheet] (Success)
* 7 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsStylesheetProperty] (Success)
- Execute transfer package for [Mebios].[cmsStylesheetProperty] (Success)
- Copying to [Mebios].[cmsStylesheetProperty] (Success)
* 0 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsTab] (Success)
- Execute transfer package for [Mebios].[cmsTab] (Success)
- Copying to [Mebios].[cmsTab] (Success)
* 49 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsTagRelationship] (Success)
- Execute transfer package for [Mebios].[cmsTagRelationship] (Success)
- Copying to [Mebios].[cmsTagRelationship] (Success)
* 0 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsTags] (Success)
- Execute transfer package for [Mebios].[cmsTags] (Success)
- Copying to [Mebios].[cmsTags] (Success)
* 0 rows transferred
- Create a temporary table transfer package for [Mebios].[cmsTemplate] (Success)
- Execute transfer package for [Mebios].[cmsTemplate] (Success)
- Copying to [Mebios].[cmsTemplate] (Success)
* 18 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoApp] (Success)
- Execute transfer package for [Mebios].[umbracoApp] (Success)
- Copying to [Mebios].[umbracoApp] (Success)
* 7 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoAppTree] (Success)
- Execute transfer package for [Mebios].[umbracoAppTree] (Success)
- Copying to [Mebios].[umbracoAppTree] (Success)
* 28 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoDomains] (Success)
- Execute transfer package for [Mebios].[umbracoDomains] (Success)
- Copying to [Mebios].[umbracoDomains] (Success)
* 2 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoLanguage] (Success)
- Execute transfer package for [Mebios].[umbracoLanguage] (Success)
- Copying to [Mebios].[umbracoLanguage] (Success)
* 1 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoLog] (Success)
- Execute transfer package for [Mebios].[umbracoLog] (Success)
- Copying to [Mebios].[umbracoLog] (Success)
* 35223 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoNode] (Success)
- Execute transfer package for [Mebios].[umbracoNode] (Success)
- Copying to [Mebios].[umbracoNode] (Success)
* 413 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoRelation] (Success)
- Execute transfer package for [Mebios].[umbracoRelation] (Success)
- Copying to [Mebios].[umbracoRelation] (Success)
* 0 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoRelationType] (Success)
- Execute transfer package for [Mebios].[umbracoRelationType] (Success)
- Copying to [Mebios].[umbracoRelationType] (Success)
* 1 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoStatEntry] (Success)
- Execute transfer package for [Mebios].[umbracoStatEntry] (Success)
- Copying to [Mebios].[umbracoStatEntry] (Success)
* 0 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoStatSession] (Success)
- Execute transfer package for [Mebios].[umbracoStatSession] (Success)
- Copying to [Mebios].[umbracoStatSession] (Success)
* 0 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoStylesheet] (Success)
- Execute transfer package for [Mebios].[umbracoStylesheet] (Success)
- Copying to [Mebios].[umbracoStylesheet] (Success)
* 0 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoStylesheetProperty] (Success)
- Execute transfer package for [Mebios].[umbracoStylesheetProperty] (Success)
- Copying to [Mebios].[umbracoStylesheetProperty] (Success)
* 0 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoUser] (Success)
- Execute transfer package for [Mebios].[umbracoUser] (Success)
- Copying to [Mebios].[umbracoUser] (Success)
* 12 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoUser2app] (Success)
- Execute transfer package for [Mebios].[umbracoUser2app] (Success)
- Copying to [Mebios].[umbracoUser2app] (Success)
* 34 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoUser2NodeNotify] (Success)
- Execute transfer package for [Mebios].[umbracoUser2NodeNotify] (Success)
- Copying to [Mebios].[umbracoUser2NodeNotify] (Success)
* 22 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoUser2NodePermission] (Success)
- Execute transfer package for [Mebios].[umbracoUser2NodePermission] (Success)
- Copying to [Mebios].[umbracoUser2NodePermission] (Success)
* 0 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoUser2userGroup] (Success)
- Execute transfer package for [Mebios].[umbracoUser2userGroup] (Success)
- Copying to [Mebios].[umbracoUser2userGroup] (Success)
* 0 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoUserGroup] (Success)
- Execute transfer package for [Mebios].[umbracoUserGroup] (Success)
- Copying to [Mebios].[umbracoUserGroup] (Success)
* 0 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoUserLogins] (Success)
- Execute transfer package for [Mebios].[umbracoUserLogins] (Success)
- Copying to [Mebios].[umbracoUserLogins] (Success)
* 439 rows transferred
- Create a temporary table transfer package for [Mebios].[umbracoUserType] (Success)
- Execute transfer package for [Mebios].[umbracoUserType] (Success)
- Copying to [Mebios].[umbracoUserType] (Error)
* 4 rows transferred
Messages
* ERROR : errorCode=-1071607780 description=There was an error with output column "contentTypeNodeId" (108) on output "OLE DB Source Output" (12). The column status returned was: "The value could not be converted because of a potential loss of data.".
helpFile=dtsmsg.rll helpContext=0 idofInterfaceWithError={8BDFE893-E9D8-4D23-9739-DA807BCDC2AC}
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476
* ERROR : errorCode=-1071607767 description=SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "output column "contentTypeNodeId" (108)" failed because error code 0xC0209072 occurred, and the error row disposition on "output column "contentTypeNodeId" (108)" specifies failure on error. An error occurred on the specified object of the specified component. There may be error messages posted before this with more information about the failure.
helpFile=dtsmsg.rll helpContext=0 idofInterfaceWithError={8BDFE893-E9D8-4D23-9739-DA807BCDC2AC}
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476
* ERROR : errorCode=-1073450952 description=SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on component "OLE DB Source" (1) returned error code 0xC0209029. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.
helpFile=dtsmsg.rll helpContext=0 idofInterfaceWithError={8BDFE893-E9D8-4D23-9739-DA807BCDC2AC}
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476
* ERROR : errorCode=-1073450975 description=SSIS Error Code DTS_E_THREADFAILED. Thread "SourceThread0" has exited with error code 0xC0047038. There may be error messages posted before this with more information on why the thread has exited.
helpFile=dtsmsg.rll helpContext=0 idofInterfaceWithError={8BDFE893-E9D8-4D23-9739-DA807BCDC2AC}
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476
* ERROR : errorCode=-1073450951 description=SSIS Error Code DTS_E_THREADCANCELLED. Thread "WorkThread0" received a shutdown signal and is terminating. The user requested a shutdown, or an error in another thread is causing the pipeline to shutdown. There may be error messages posted before this with more information on why the thread was cancelled.
helpFile=dtsmsg.rll helpContext=0 idofInterfaceWithError={8BDFE893-E9D8-4D23-9739-DA807BCDC2AC}
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476
* ERROR : errorCode=-1073450975 description=SSIS Error Code DTS_E_THREADFAILED. Thread "WorkThread0" has exited with error code 0xC0047039. There may be error messages posted before this with more information on why the thread has exited.
helpFile=dtsmsg.rll helpContext=0 idofInterfaceWithError={8BDFE893-E9D8-4D23-9739-DA807BCDC2AC}
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476
- Create a temporary table transfer package for [Mebios].[cmsContentTypes] (Success)
- Execute transfer package for [Mebios].[cmsContentTypes] (Success)
- Copying to [Mebios].[cmsContentTypes] (Stopped)
- Create a temporary table transfer package for [Mebios].[umbracoContent] (Stopped)
- Execute transfer package for [Mebios].[umbracoContent] (Stopped)
- Copying to [Mebios].[umbracoContent] (Stopped)
- Create a temporary table transfer package for [Mebios].[umbracoContentAll] (Stopped)
- Execute transfer package for [Mebios].[umbracoContentAll] (Stopped)
- Copying to [Mebios].[umbracoContentAll] (Stopped)
- Create a temporary table transfer package for [Mebios].[umbracoContentData] (Stopped)
- Execute transfer package for [Mebios].[umbracoContentData] (Stopped)
- Copying to [Mebios].[umbracoContentData] (Stopped)
These errors cause serious problems in the sense that some very important tables do not seem to be copied to the new server (umbracoContent) comes to mind. This also seems to affect backups of the DB on the old server btw...
I wonder how this can be possible. It should always be able to copy a DB to a new SQL server during a server upgrade without affecting Umbraco, right?
As it is now my website is still running on the old server but I seem to have no means to transfer the DB to anywhere else, nor to back it up.
I am guessing that somewhere along the line something went wrong with the DB when upgrading Umbraco and that somehow errors in the DB schema (or whatever it is called) are causing my backups/transfers to fail.
Question is, how can I recover my content/scripts/... from the old running instance and somehow copy them over to a fresh Umbraco install. Use the package creator, invest in Courier?
Wow... thats a lot of errors..These are critical errors indeed.
But instead of using the data import/export tool (or how is it called?) there is a much simpler solution that I used a lot.
It is possible if you have access to the filesystem of both sql servers. I presume you can arrange that. I have migrated a lot of databases from sql2000 to sql2005 and some directly from 2000 to sql2008. Always on the same way:
Procedure to create a backup in sql2000:
rightclick on the database in enterprise manager an choose all task -> backup database
destination should be a file. If there is alread some filename there, remove it and add a name with .bak extension (e.g. d:\tempumbraco.bak)
the .bak file is written to the disk of the server
copy that .bak file to the filesystem of sql2005
Procedure to restore backup on sql2005 / 2008
rightclick on database node. Choose "Restore database..."
choose a new databasename (must not exist yet).
choose "from device", click on the "..." button, locate and choose the .bak file on disk, click OK (TWICE)
Now check the checkbox in the backupset.
(optional: the location of the mdf and ldf files can be changed in the options-menu)
Now you can press OK and a progress bar should run up to 100%
Now you only need to specify users to that db. I asume you do not use intergrated security but connectionstring
in that case: goto to the newly created db. open security, users and remove the username used by sql2000
Go up one more level to the Databases, Security, Logins and create a new login In the user mapping, choose the newly created DB and specify db_reader, db_writer and db_owner
This is much more reliable approach of converting databases to a new sqlserver
I can give that approach a try tomorrow although I am starting to thing something is seriously broken with my current database... SQL server is generating daily backups of the DB but when trying to restore these backup of the last few weeks all of them seem to be "broken" and missing the tables mentioned at the bottom of the log I posted. I currently don't know what might be causing these kinds of problems but I plan to just create a fresh 2005 DB, a new install of Umbraco and use a package with the content generated on the old instance.
Upgrading to 4.5.x and DB 4.1
Hi guys,
I have been having some trouble upgrading an old Umbraco installation to 4.5 (for .NET 4.0).
After some minor issues with the password format (Clear vs. Hashed) and a missing reference in bin releated to IronPython (Microsoft.Scripting.ExtensionAttribute.dll) I was up and running.
However, all is not well in the universe: during install I go an error related to the DB upgrade process (I assume because Umbraco tried to update my DB to the 4.1 layout). I do not recall the exact error and I was stupid enough not to write it down but it was something along the lines of "line xxx error at (".
Initially I thought nothing of it since the website seemed to run A-OK. It was only a few hours later that I noticed that publishing of pages resulted in more errors:
"Invalid object name 'cmsPreviewXml'."
As it turns out, cmsPreviewXml is not in my DB.
I base this assumption on:
http://umbraco.codeplex.com/workitem/27855
I then went and checked the code repository for the correct SQL statements to create this table (I am not an expert mind you) and I found:
http://umbraco.codeplex.com/SourceControl/changeset/view/64074#906047
Where I took the snippet:
I loaded up Enterprise manager and tried to run it against my DB and this is what happened:
Msg 170, Level 15, State 1, Line 11
Line 11: Incorrect syntax near '('.
The exact same error I got when running the Umbraco installer!!!
I therefore think it is a subtle syntax error in Total.sql
Sadly, I don't know enough SQL to fix it myself so I was wondering if anybody could help out and maybe come up with the proper SQL to fix my DB. Probably I should also file this as a bug over at CodePlex?
Cheers,
Kris
Also, how can I check if my DB is fully up to spec when it comes to having all tables, keys, ... required for the latest version of Umbraco.
Are there any tools available to do this or to fix any errors that might exist?
Files a bug about this (as I believe it actually is)
The issue is fully described here:
http://umbraco.codeplex.com/workitem/29187
Cheers,
K.
Seriously, nobody that has a clue as to how to solve this? I find that hard to believe... :-/
Sounds like an upgrade issue. When cmsPreviewXml is not in your db, you could try this script.
I created it from a newly installed database on 4.5.2 by generating a script from the sql 2008 server management studio. One thing that I notice is that you say "enterprise manager". Are you still using Sql 2000?
This script is created using sql 2008 server management studio.
You might also want to check the following posts
http://our.umbraco.org/wiki/install-and-setup/upgrading-an-umbraco-installation
http://our.umbraco.org/wiki/about/roadmap/umbraco-45/upgrading-to-umbraco-45
Thanks for the feedback.
It appears that our faculty is indeed running SQL server 2000 (8.0.2039) so that is probably why I am running into errors? If so that would be a major pain... it will not be easy to convince the DB admins to upgrade the SQL server (even though it's two versions behind).
Wait.... it is possible for me to generate a script in SQL 2008 and say in the generate options that it has to be compatible with SQL 2000.
That way the following script is generated. Looks a bit different.
Does it work?
Note that the context of this script should be run in the context of your database.You can check that in enterprise manager as it is displayed in some dropdown (i can not verify that info as I do not have sql 2000).
If your database is called "dbname", you should add on the first line that says
now the script
Hey Nico,
Thanks for the continued interest in my problems. Your initial SQL did not succeed in creating the table in my DB, probably because of the fact that the DB is indeed hosted on SQL2000.
Because of these problems I had a talk with the admin of our servers (working at university here) and we decided to try and migrate the database to an intermediary server running SQL2005. They plan to install a range of SQL2008 machines later on...
This is when things went a bit pear shaped again: we tried to do an import of the existing database on the SQL2000 server from the 2005 one. This seemed to run perfectly okay but before completion two errors popped up:
These errors cause serious problems in the sense that some very important tables do not seem to be copied to the new server (umbracoContent) comes to mind. This also seems to affect backups of the DB on the old server btw...
I wonder how this can be possible. It should always be able to copy a DB to a new SQL server during a server upgrade without affecting Umbraco, right?
As it is now my website is still running on the old server but I seem to have no means to transfer the DB to anywhere else, nor to back it up.
I am guessing that somewhere along the line something went wrong with the DB when upgrading Umbraco and that somehow errors in the DB schema (or whatever it is called) are causing my backups/transfers to fail.
Question is, how can I recover my content/scripts/... from the old running instance and somehow copy them over to a fresh Umbraco install. Use the package creator, invest in Courier?
Cheers,
Kris
Wow... thats a lot of errors..These are critical errors indeed.
But instead of using the data import/export tool (or how is it called?) there is a much simpler solution that I used a lot.
It is possible if you have access to the filesystem of both sql servers. I presume you can arrange that.
I have migrated a lot of databases from sql2000 to sql2005 and some directly from 2000 to sql2008. Always on the same way:
Procedure to create a backup in sql2000:
Procedure to restore backup on sql2005 / 2008
This is much more reliable approach of converting databases to a new sqlserver
Hope this helps
Hi Nico,
I can give that approach a try tomorrow although I am starting to thing something is seriously broken with my current database... SQL server is generating daily backups of the DB but when trying to restore these backup of the last few weeks all of them seem to be "broken" and missing the tables mentioned at the bottom of the log I posted. I currently don't know what might be causing these kinds of problems but I plan to just create a fresh 2005 DB, a new install of Umbraco and use a package with the content generated on the old instance.
I'll keep you posted.
is working on a reply...