Ticket #1077 (new enhancement) — at Version 1
Switch to new vdm changeset model
Reported by: | rgrp | Owned by: | kindly |
---|---|---|---|
Priority: | awaiting triage | Milestone: | ckan-backlog |
Component: | ckan | Keywords: | |
Cc: | Repository: | ckan | |
Theme: | none |
Description (last modified by rgrp) (diff)
Have developed a new "changeset" based model for revisioning in vdm. This has several advantages:
- Much simpler
- Cleaner separation of continuity from changesets
- Supports certain operations that are impossible now (e.g. deleting all changes to a particular object irrespective of whether other objects were changed in same revisions).
- Easier support for pending state and similar behaviour
- Almost identical API
Implementation
- The main challenge with this change is schema and data migration
Migration
Every revisioned object has a revision_id and revision attribute.
Approximate algorithm:
Revision -> Changeset for revtype in [PackageRevision, ...]: for pkgrev in package_revision: changeset = lookupchangeset(package_revision) ChangeObject(cset, (table, id), dictize(pkgrev))
Question:
- does pkg include tags attributes or not? or we have to dictize, pkgrev, pkg2tagrev, and tag. Probably the latter.
Change History
Note: See
TracTickets for help on using
tickets.