Migrating from dotCMS 1.7 to 1.9 (was: 1.9 Developer Preview now available)
In the 36 hours since the Developers Preview went public, there have been a
good number of downloads and many conversations on the listserv, all of
which is great.
One of the questions over the past day and a half is around the migration
from 1.7 to 1.9. How complex/easy? Special considerations? Gotchas? Let me
try to answer some of these questions and further the conversation.
To start with, 1.9 is a big step forward from 1.7. While not being a
complete re-build, we added a ton of new functionality including a new UI,
CMIS interoperability, improved multi-site management and a new form builder
tool – to name a few. We have seen a lot of change in the needs of the CMS
market over the past year, and if 1.9 was going to keep pace with the
market, we needed a significant re-tooling of the product.
As you can imagine, such significant change and improvements in the product
come with a price. For some, migration from 1.7 to 1.9 will be a sizable
undertaking. You will need pre-planning and some testing and revisiting of
custom code to insure a successful upgrade experience. Specifically, Roles,
Groups (there are no longer any groups), layouts, users and permissions will
all need to be looked at and re-thunk, and there is not really an automated
script that can do this thinking for you. Plugins are another area that
will need to be addressed and custom plugs may need to be tested/modified to
work with the new codebase. Additionally, any custom velocity code, e.g.
code that tries to parse an inode to a number or compares an inode with 0,
will also need to be looked at. Moving forward, dotCMS and our community
will find many other issues as well.
And where possible, we have worked hard to minimize issues when upgrading
from 1.7. Here are some examples: while we have re-written our Lucene
indexes, we have built translators that will convert old queries to new ones
on the fly which should handle about 90% of legacy queries; when converting
our system identifiers to UUIDs - from numbers to Strings - we will still
support legacy identifiers as numbers stored as Strings; we have created
many startup tasks that are charged with migrating and massaging data as
needed, etc... The list goes and on and on. So, in developing the new
release, I would say we have definitely kept our eye on helping the dotCMS
community and our customer’s transition to the 1.9 branch.
For those on Enterprise who are awaiting the Enterprise release of 1.9, we
are developing an Upgrade Service Package that will help both assess and
implement the migration. Such as package will be available through dotCMS
and our Partners.
Please keep in mind that this is a major release and represents major
structural changes/improvements to the system. In order to help everyone
understand and foresee the challenges with upgrading to 1.9, I suggest we
create a special page in the documentation site that outlines what to expect
when upgrading a 1.7 instance. This page will be an unstructured document
that will strive for completeness rather than aesthetics and can act as a
catalog/checklist of potential gotchas when performing an upgrade. We will
accept feedback and keep the document as up to date as possible. Any
feedback regarding this idea is welcome.
Thanks all, and believe me, there is more to come.