SQL::Translator README The SQLFairy project began with the idea of simplifying the task of converting one database create syntax to another through the use of Parsers (which understand the source format) and Producers (which understand the destination format). The idea is that any Parser can be used with any Producer in the conversion process, so, if you wanted Postgres-to-Oracle, you would use the Postgres parser and the Oracle producer. The project has since grown to include parsing structured data files like Excel spreadsheets and delimited text files and the production of various documentation aids, such as images, graphs, POD, and HTML descriptions of the schema, as well as automatic code generators through the use of Class::DBI. Presently only the definition parts of SQL are handled (CREATE, ALTER), not the manipulation of data (INSERT, UPDATE, DELETE). As of version 0.02, parsers exist for the following: Excel MySQL Oracle PostgreSQL Sybase xSV (arbitrarily delimited text files) And the following producers exist: ClassDBI: Class::DBI classes Diagram: quasi-ER diagrams using libgd GraphViz: ER diagrams using GraphViz HTML: HTML documentation of schema MySQL: MySQL-specific schema Oracle: Oracle-specific schema POD: Plain Old Documenation of schema PostgreSQL: PostgreSQL-specific schema SQLite: SQLite-specific schema Sybase: Sybase-specific schema XML: structure of the schema described in XML You can, of course, define your own parsers or producers and pair them with existing parsers or producers as long as they adhere to the API of the SQL::Translator::Schema object. Included in this distribution are a few scripts designed to be user interfaces for the actual SQL::Translator modules. In the "bin" directory, you will find: * sqlt-diagram.pl * sqlt-graph.pl * sql_translator.cgi * sql_translator.pl All scripts ending in ".pl" are meant to be run from the command line with various switches to control the input and output of the scripts, while the ".cgi" script is a web-form frontend. The script you'll probably find most useful is the "sql_translator.pl" script which is meant to be the main interface for translating from text-to-text. The graphic producers, however, have many extra switches, so there are scripts specific for each of the the GraphViz an ER-diagram producers. All scripts start with "sql" so it will be easier to identify them on your system. All the "*.pl" scripts will be installed in the normal installation process, but you'll have to put the CGI script into your web CGI directory to use it. If you're more interested in using the SQL::Translator modules directly, then you might be more interested to examine some of the test scripts in the "t" directory. While the test suite isn't currently as thorough as it should be, you will definitely get the idea of how to parse a file and manipulate the SQL::Translator::Schema objects. INSTALLATION The regular method: $ perl Makefile.PL $ make $ make test $ su - # make install AUTHORS Ken Y. Clark, , darren chamberlain , Chris Mungall , Allen Day , Sam Angiuoli , Ying Zhang , Mike Mellilo . COPYRIGHT This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA BUGS Please use http://rt.cpan.org/ for reporting bugs.