SQL::Translator::Diff man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

SQL::Translator::Diff(User Contributed Perl DocumentatSQL::Translator::Diff(3)

NAME
       SQL::Translator::Diff - determine differences between two schemas

DESCRIPTION
       Takes two input SQL::Translator::Schemas (or SQL files) and produces
       ALTER statments to make them the same

SNYOPSIS
       Simplest usage:

	use SQL::Translator::Diff;
	my $sql = SQL::Translator::Diff::schema_diff($source_schema, 'MySQL', $target_schema, 'MySQL', $options_hash)

       OO usage:

	use SQL::Translator::Diff;
	my $diff = SQL::Translator::Diff->new({
	  output_db	=> 'MySQL',
	  source_schema => $source_schema,
	  target_schema => $target_schema,
	  %$options_hash,
	})->compute_differences->produce_diff_sql;

OPTIONS
       ignore_index_names
	   Match indexes based on types and fields, ignoring name.

       ignore_constraint_names
	   Match constrains based on types, fields and tables, ignoring name.

       output_db
	   Which producer to use to produce the output.

       case_insensitive
	   Ignore case of table, field, index and constraint names when
	   comparing

       no_batch_alters
	   Produce each alter as a distinct "ALTER TABLE" statement even if
	   the producer supports the ability to do all alters for a table as
	   one statement.

       ignore_missing_methods
	   If the diff would need a method that is missing from the producer,
	   just emit a comment showing the method is missing, rather than
	   dieing with an error

PRODUCER FUNCTIONS
       The following producer functions should be implemented for
       completeness. If any of them are needed for a given diff, but not
       found, an error will be thrown.

       ·   "alter_create_constraint($con)"

       ·   "alter_drop_constraint($con)"

       ·   "alter_create_index($idx)"

       ·   "alter_drop_index($idx)"

       ·   "add_field($fld)"

       ·   "alter_field($old_fld, $new_fld)"

       ·   "rename_field($old_fld, $new_fld)"

       ·   "drop_field($fld)"

       ·   "alter_table($table)"

       ·   "drop_table($table)"

       ·   "rename_table($old_table, $new_table)" (optional)

       ·   "batch_alter_table($table, $hash)" (optional)

	   If the producer supports "batch_alter_table", it will be called
	   with the table to alter and a hash, the keys of which will be the
	   method names listed above; values will be arrays of fields or
	   constraints to operate on. In the case of the field functions that
	   take two arguments this will appear as a hash.

	   I.e. the hash might look something like the following:

	    {
	      alter_create_constraint => [ $constraint1, $constraint2 ],
	      add_field	  => [ $field ],
	      alter_field => [ [$old_field, $new_field] ]
	    }

       ·   "preprocess_schema($class, $schema)" (optional)

	   "preprocess_schema" is called by the Diff code to allow the
	   producer to normalize any data it needs to first. For example, the
	   MySQL producer uses this method to ensure that FK contraint names
	   are unique.

	   Basicaly any changes that need to be made to produce the SQL file
	   for the schema should be done here, so that a diff between a parsed
	   SQL file and (say) a parsed DBIx::Class::Schema object will be
	   sane.

	   (As an aside, DBIx::Class, for instance, uses the presence of a
	   "preprocess_schema" function on the producer to know that it can
	   diff between the previous SQL file and its own internal
	   representation. Without this method on th producer it will diff the
	   two SQL files which is slower, but known to work better on old-
	   style producers.)

AUTHOR
       Original Author(s) unknown.

       Refactor/re-write and more comprehensive tests by Ash Berlin
       "ash@cpan.org".

       Redevelopment sponsored by Takkle Inc.

perl v5.14.2			  2011-05-04	      SQL::Translator::Diff(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net