NAME
MojoMojo::Schema::Result::PageVersion - Versioned page metadata
DESCRIPTION
This table implements versioning of page metadata (not content, see MojoMojo::Schema::Result::Content for that). It has a composite primary key (page, version)
.
When renaming a page, a new version is created in this table, with version
set to 1 + the maximum version for that page
. The status
of the new page_version
is set to "released", its release_date
is set to DateTime->now
, while the old page_version
's status is set to 'removed' and its remove_date
is set to DateTime->now
.
TODO
document the relationships
in order to support proper rollback, meaning creating a new version for the rollback operation itself, a
content_version
field needs to be added.created
is apparently unused: set to 0 for pages populated when creating the database, and NULL for all normal pages.
METHODS
latest_version
Return the PageVersion object having the latest version of this page.
AUTHOR
Marcus Ramberg <mramberg@cpan.org>
LICENSE
This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself.