Rechercher une page de manuel
SQL::Translator::Parser::DBI.3pm
Langue: en
Version: 2009-08-18 (fedora - 01/12/10)
Section: 3 (Bibliothèques de fonctions)
NAME
SQL::Translator::Parser::DBI - "parser" for DBI handlesSYNOPSIS
use DBI; use SQL::Translator; my $dbh = DBI->connect('dsn', 'user', 'pass', { RaiseError => 1, FetchHashKeyName => 'NAME_lc', } ); my $translator = SQL::Translator->new( parser => 'DBI', dbh => $dbh, );
Or:
use SQL::Translator; my $translator = SQL::Translator->new( parser => 'DBI', parser_args => { dsn => 'dbi:mysql:FOO', db_user => 'guest', db_password => 'password', } );
DESCRIPTION
This parser accepts an open database handle (or the arguments to create one) and queries the database directly for the information.The following are acceptable arguments:
- *
- dbh
An open DBI database handle. NB: Be sure to create the database with the ``FetchHashKeyName => 'NAME_lc''' option as all the DBI parsers expect lowercased column names.
- *
- dsn
The DSN to use for connecting to a database.
- *
- db_user
The user name to use for connecting to a database.
- *
- db_password
The password to use for connecting to a database.
There is no need to specify which type of database you are querying as this is determined automatically by inspecting $dbh->{'Driver'}{'Name'}. If a parser exists for your database, it will be used automatically; if not, the code will fail automatically (and you can write the parser and contribute it to the project!).
Currently parsers exist for the following databases:
- *
- MySQL
- *
- SQLite
- *
- Sybase
- *
- PostgreSQL (still experimental)
Most of these parsers are able to query the database directly for the structure rather than parsing a text file. For large schemas, this is probably orders of magnitude faster than traditional parsing (which uses Parse::RecDescent, an amazing module but really quite slow).
Though no Oracle parser currently exists, it would be fairly easy to query an Oracle database directly by using DDL::Oracle to generate a DDL for the schema and then using the normal Oracle parser on this. Perhaps future versions of SQL::Translator will include the ability to query Oracle directly and skip the parsing of a text file, too.
AUTHOR
Ken Y. Clark <kclark@cpan.org>.SEE ALSO
DBI, SQL::Translator.Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre