After the previous step I’ve got a fresh “To-be” database to compare with my legacy Umbraco database. So, it was arrived the moment to do the hard work: schema and data comparisons…

Big breath, switch off all notification alarms (email, phone) and go!

the comparison was realized thanks to Schema and Data Compare features offered by SQL Server Data Tools (SSDT) integrated in Visual Studio 2013. I’ve set some option for the schema comparison, in order to generate a better publishing sql script.

the following is a summary of the differences founded, grouped by difficulty level (DL): 1 = simple, 5 = difficult.

Tables with modified structure (DL:5)
[cmsContentType]
[cmsContentTypeAllowedContentType]
[cmsContentVersion]
[cmsDataType]
[cmsPropertyType]
[cmsTagRelationship]

Tables removed (DL:4)
[cmsMacroPropertyType]
[cmsTab]
[umbracoApp]
[umbracoAppTree]

Tables with modified field’s names or field’s SQL types (DL:3)
[cmsMacroProperty]
[cmsTags]
[cmsTask]
[cmsTaskType]
[umbracoLanguage]
[umbracoNode]
[umbracoUser]
[umbracoUser2NodeNotify]
[umbracoUser2NodePermission]

Tables with modified indexes and other constraints (DL:2)
[cmsContent]
[cmsDocumentType]
[cmsMember2MemberGroup]
[cmsMemberType]
[cmsPreviewXml]
[umbracoUserLogins]

Tables with modified field’s collations (DL:1)
[cmsContentXml]
[cmsDataTypePreValues]
[cmsDictionary]
[cmsDocument]
[cmsLanguageText]
[cmsMacro]
[cmsMember]
[cmsPropertyData]
[cmsStylesheet]
[cmsStylesheetProperty]
[cmsTemplate]
[umbracoDomains]
[umbracoLog]
[umbracoRelation]
[umbracoRelationType]
[umbracoUser2app]
[umbracoUserLogins]

Furthermore, there were some new tables…

Upgrade Tables with modified structure

At first I faced the most difficult set of tables, because solving those could allow me to understand the global effort to complete the prototype and verify what could be closed at the end of my time-box.

Upgrade ContentType tables

There are at least three tables in this group: cmsContentType, cmsContentType2ContentType (NEW table!), cmsContentTypeAllowedContentType. Their purpose is to define the relations among Umbraco Document Types.

I’ve changed the generated script in order to:

Upgrade PropertyType tables

There are two tables in this group: cmsPropertyType, cmsPropertyTypeGroup (NEW table!). These tables manage the relations of Document property, their relationship, their type, etc. About this topic there is another table involved: cmsTab (that groups properties in specific tabs), that was removed in the new release…

I’ve changed the generated script in order to:

Upgrade DataType tables

Tables like cmsDataType contain data about how (macro’s and content’s) properties are managed. Here came some big problems…Actually we have customized some functionalities for insert/edit macro properties, creating some custom back-office module. So, besides the data and the tables, we should spend a lot of time to rewrite these functionalities for the renewed Umbraco back office, developed in Angular.js. Probably it’s not just a problem about my time-box, but also about my (implicit) goals: in this moment I can’t spend too much time to allow the dev team learning Angular.js. I know that framework, it’s cool, but it’s not so easy as it seems the first days…and I’d want my dev team to spend time learning other framework that could pump the application performance, like AspNet.MVC (vs WebForms).

So…

Umbraco 7.1.8 is NOT my landing version…
This prototype is failed.
Second failure.

Updated:

Comments