Como migrar do SQL Compact para SQL Server e Azure

Migrando uma instalação Umbraco SQL CE para SQL Server e Azure

Hoje quero mostrar para vocês como migrar o banco SQL CE de uma instalação Umbraco v6 para SQL Server ou Azure.

Primeiro passo baixar a ferramenta SQL CE Toolbox, vai ajudar a criar os scripts de migração.

 Após instalar e executar a ferramenta adicione uma conexão selecionando o banco SQL CE de sua instalação \ App_Data\Umbraco.sdf conforme as imagens abaixo.

1

2

O SQL CE Toolbox, na opção "Script", disponibiliza algumas formas de migrar, Schema, Data, Schema e Data e BLOB.

Ultilizei a opção Schema and Data. Ele gera um script sql com a criação das tabelas e inserts de todos os dados. Caso esteja migrando para SQL Server basta rodar o script no banco, trocar a connect string na web.config e pronto!

No caso do Azure se rodar o script vai receber esse erro: "Tables without a clustered index are not supported in this version of SQL Server. Please create a clustered index and try again". Isso porque o Azure não aceita Nonclustered Indexes e a tabela umbracoUserLogins possui um Index Nonclustered. Para resolver isso abra o script faça uma pesquisa por "umbracoUserLogins_Index" e substitua:

Isso:

CREATE INDEX [umbracoUserLogins_Index] ON [umbracoUserLogins] ([contextID] ASC)

 Por:

CREATE CLUSTERED INDEX umbracoUserLogins_Index ON umbracoUserLogins (contextID)

 Pronto!

Isso é tudo!

Referências:

http://our.umbraco.org/forum/getting-started/installing-umbraco/42028-Migrating-to-Azure

http://codecloudy.wordpress.com/2012/02/27/umbraco-cms-database-sql-azure-migration/

http://msdn.microsoft.com/library/azure/ee336275.aspx