Personal tools
You are here: Home Products AT Content Types Roadmap #4: Version Migration
Document Actions

#4: Version Migration

Contents
  1. Motivation
  2. Proposal
  3. Implementation
  4. Participants
by Alec Mitchell last modified August 21, 2006 - 05:53
ATCT is in need of a system for migrating from one version to the next.
Proposed by
Alec Mitchell
Seconded by
Christian 'Tiran' Heimes
Proposal type
User interface, Architecture
Assigned to release
Repository branch
plip-004-version-migration
State
completed

Motivation

ATCT 0.2 is now in use by a number of people, who will certainly want a painless upgrade path to 1.0 and beyond. Currently ATCT provides no infrastructure for making changes that may be required during a version migration.

Fortunately, ATCT has not had architectural changes of the sort that require a migration structure up to this point. With 1.0 that has changed. In order to make the default Date Criterion for Topics more useful, the stored attributes needed changed semantics. Also, in order to allow migrations for CMF Topics the Integer Criterion for existing ATTopics needed some extra information which may require a trivial migration. Additionally, the CMF Type migration in 0.2 did not migrate CMF Topics; version migration should migrate any currently unmigrated types, which may have been missed during the type migration for 0.2. Lastly, ATCT 1.0 introduces a dependency on a Plone site-property currently only available in Plone 2.1. A version migration could add this property to any plone 2.0 instances to ensure compatibility with existing sites.

Proposal

A proven and straightforward migration infrastructure exists for CMFPlone. This infrastructure has been reused successfully in other projects (CMFMember), and appears to be very general in its applicability, without being overly abstract or complex.

Implementation

Implementing a system similar to the plone version migration will require a couple of migration methods added to the ATCT Tool, most notably CMFPlone.MigrationTool.upgrade() and its helper methods. Also the ATCT tool will need a registry for migrations as in CMFPlone.MigrationTool.

The ATCT/migrations/__init__.py will be modified to register any new migrations. And migration scripts will be added to subdirectories under ATCT/migrations (currently only v1 is needed).

Participants

Alec Mitchell (alecm)
Christian Heimes (Tiran)


For any issues with the web site functionality, please file a ticket.

Please consult the policy on plone.org content if you want your content published on this site.

Servers and hosting by