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.
