SQL::Translator::Schema::Role::Extra(3) extra attribute for schema classes


package Foo;
use Moo;
with qw(SQL::Translator::Schema::Role::Extra);


This role provides methods to set and get a hashref of extra attributes for schema objects.



Get or set the objects ``extra'' attributes (e.g., ``ZEROFILL'' for MySQL fields). Call with no args to get all the extra data. Call with a single name arg to get the value of the named extra attribute, returned as a scalar. Call with a hash or hashref to set extra attributes. Returns a hash or a hashref.

  $field->extra( qualifier => 'ZEROFILL' );
  $qualifier = $field->extra('qualifier');
  %extra = $field->extra;
  $extra = $field->extra;


``extra'' can only be used to get or set ``extra'' attributes but not to remove some. Call with no args to remove all extra attributes that have been set before. Call with a list of key names to remove certain extra attributes only.

  # remove all extra attributes
  # remove timezone and locale attributes only
  $field->remove_extra(qw/timezone locale/);