---
name: "KiokuDB::Role::Upgrade::Data"
section: "3pm"
platform: "linux"
package: "libkiokudb-perl"
version: "0.57-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/KiokuDB::Role::Upgrade::Data"
---

# KiokuDB::Role::Upgrade::Data(3pm)

Classes that provide their own upgrade routine.

## NAME

KiokuDB::Role::Upgrade::Data - Classes that provide their own upgrade routine.

## VERSION

version 0.57

## SYNOPSIS

```
    with qw(KiokuDB::Role::Upgrade::Data);
    sub kiokudb_upgrade_data {
        my ( $class, %args ) = @_;
        # convert the data from the old version of the class to the new version
        # as necessary
        $args{entry}->derive(
            class_version => our $VERSION,
            ...
        );
    }
```

## DESCRIPTION

This class allows you to take control the data conversion process completely (there is only one handler per class, not one handler per version with this approach).

See KiokuDB::Role::Upgrade::Handlers::Table for a more DWIM approach, and KiokuDB::TypeMap::Entry::MOP for more details.

## AUTHOR

Yuval Kogman \<nothingmuch@woobling.org\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Yuval Kogman, Infinity Interactive.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
