Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

sql::translator::producer::ttschema(3pm) [debian man page]

SQL::Translator::Producer::TTSchema(3pm)		User Contributed Perl Documentation		  SQL::Translator::Producer::TTSchema(3pm)

NAME
SQL::Translator::Producer::TTSchema - Produces output using the Template Toolkit from a SQL schema SYNOPSIS
use SQL::Translator; my $translator = SQL::Translator->new( from => 'MySQL', filename => 'foo_schema.sql', to => 'TTSchema', producer_args => { ttfile => 'foo_template.tt', # Template file to use # Extra template variables ttargs => { author => "Mr Foo", }, # Template config options ttargs => { INCLUDE_PATH => '/foo/templates', }, }, ); print $translator->translate; DESCRIPTION
Produces schema output using a given Template Tookit template. It needs one additional producer_arg of "ttfile" which is the file name of the template to use. This template will be passed a variable called "schema", which is the "SQL::Translator::Producer::Schema" object created by the parser. You can then use it to walk the schema via the methods documented in that module. Here's a brief example of what the template could look like: database: [% schema.database %] tables: [% FOREACH table = schema.get_tables %] [% table.name %] ================ [% FOREACH field = table.get_fields %] [% field.name %] [% field.data_type %]([% field.size %]) [% END -%] [% END %] See t/data/template/basic.tt for a more complete example. The template will also get the set of extra variables given as a hashref via the "tt_vars" producer arg. You can set any of the options used to initiallize the Template object by adding a tt_conf producer_arg. See Template Toolkit docs for details of the options. (Note that the old style of passing this config directly in the producer args has been deprecated). $translator = SQL::Translator->new( to => 'TT', producer_args => { ttfile => 'foo_template.tt', ttargs => {}, tt_conf = { INCLUDE_PATH => '/foo/templates/tt', INTERPOLATE => 1, } }, ); You can use this producer to create any type of text output you like, even using it to create your own versions of what the other producers make. For example, you could create a template that translates the schema into MySQL's syntax, your own HTML documentation, your own Class::DBI classes (or some other code) -- the opportunities are limitless! Producer Args ttfile The template file to generate the output with. tt_vars A hash ref of extra variables you want to add to the template. tt_conf A hash ref of configuration options to pass to the Template object's constructor. AUTHOR
Mark Addison <grommit@users.sourceforge.net>. TODO
More template vars? e.g. [% tables %] as a shortcut for [% schema.get_tables %]. SEE ALSO
SQL::Translator. perl v5.14.2 2012-01-18 SQL::Translator::Producer::TTSchema(3pm)

Check Out this Related Man Page

SQL::Translator::Producer::MySQL(3pm)			User Contributed Perl Documentation		     SQL::Translator::Producer::MySQL(3pm)

NAME
SQL::Translator::Producer::MySQL - MySQL-specific producer for SQL::Translator SYNOPSIS
Use via SQL::Translator: use SQL::Translator; my $t = SQL::Translator->new( parser => '...', producer => 'MySQL', '...' ); $t->translate; DESCRIPTION
This module will produce text output of the schema suitable for MySQL. There are still some issues to be worked out with syntax differences between MySQL versions 3 and 4 ("SET foreign_key_checks," character sets for fields, etc.). ARGUMENTS
This producer takes a single optional producer_arg "mysql_version", which provides the desired version for the target database. By default MySQL v3 is assumed, and statements pertaining to any features introduced in later versions (e.g. CREATE VIEW) are not produced. Valid version specifiers for "mysql_version" are listed here Table Types Normally the tables will be created without any explicit table type given and so will use the MySQL default. Any tables involved in foreign key constraints automatically get a table type of InnoDB, unless this is overridden by setting the "mysql_table_type" extra attribute explicitly on the table. Extra attributes. The producer recognises the following extra attributes on the Schema objects. field.list Set the list of allowed values for Enum fields. field.binary, field.unsigned, field.zerofill Set the MySQL field options of the same name. field.renamed_from, table.renamed_from Use when producing diffs to indicate that the current table/field has been renamed from the old name as given in the attribute value. table.mysql_table_type Set the type of the table e.g. 'InnoDB', 'MyISAM'. This will be automatically set for tables involved in foreign key constraints if it is not already set explicitly. See "Table Types". Please note that the "ENGINE" option is the preferred method of specifying the MySQL storage engine to use, but this method still works for backwards compatibility. table.mysql_charset, table.mysql_collate Set the tables default charater set and collation order. field.mysql_charset, field.mysql_collate Set the fields charater set and collation order. SEE ALSO
SQL::Translator, http://www.mysql.com/. AUTHORS
darren chamberlain <darren@cpan.org>, Ken Youens-Clark <kclark@cpan.org>. perl v5.14.2 2012-01-18 SQL::Translator::Producer::MySQL(3pm)
Man Page