---
name: "MojoMojo::Schema::Result::PageVersion"
section: "3pm"
platform: "linux"
package: "libmojomojo-perl"
version: "1.12+dfsg-1"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/MojoMojo::Schema::Result::PageVersion"
---

# MojoMojo::Schema::Result::PageVersion(3pm)

Versioned page metadata

## 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.
