Updated changes.
[dbsrgits/SQL-Translator.git] / README
1                       SQL::Translator README
2
3 SQL::Translator is a group of Perl modules that manipulate structure
4 data definitions (mostly database schemas) in interesting ways, such
5 as converting among different dialects of CREATE syntax (e.g.,
6 MySQL-to-Oracle), visualizations of schemas (pseudo-ER diagrams
7 GraphViz or GD), automatic code generation (using Class::DBI),
8 converting non-RDBMS files to SQL schemas (xSV text files, Excel
9 spreadsheets), serializing parsed schemas (via Storable, YAML and
10 XML), creating documentation (HTML and POD), and more.  New to version
11 0.03 is the ability to talk directly to a database through DBI to
12 query for the structures of several databases.
13
14 Through the separation of the code into parsers and producers with an
15 object model in between, it's possible to combine any parser with any
16 producer, to plug in custom parsers or producers, or to manipulate the
17 parsed data via the built-in object model.  Presently only the
18 definition parts of SQL are handled (CREATE, ALTER), not the
19 manipulation of data (INSERT, UPDATE, DELETE).
20
21 As of version 0.03, parsers exist for the following:
22
23     Databases:
24         MySQL
25         Oracle
26         PostgreSQL
27         Sybase
28         SQLite
29
30         DBI-MySQL
31         DBI-PostgreSQL
32         DBI-SQLite
33         DBI-Sybase
34
35     Other:
36         xSV          : arbitrarily delimited text files
37         Excel        : Microsoft Excel spreadsheets
38         XML-SQLFairy : SQLFairy's XML format
39         YAML/Storable: Serialized schema objects
40
41 And the following producers exist:
42
43     Databases:
44         MySQL
45         Oracle
46         PostgreSQL
47         SQLite
48         Sybase
49     
50     Code Generators:
51         ClassDBI     : Class::DBI classes
52
53     Documentation:
54         Diagram      : quasi-ER diagrams using libgd
55         GraphViz     : ER diagrams using GraphViz
56         HTML         : HTML documentation of schema
57         POD          : Plain Old Documenation of schema
58
59     Serialization:
60         Storable     : using Perl's Storable module
61         YAML         : YAML format
62         XML-SQLFairy : structure of the schema described in SQLFairy's XML
63
64     Other:
65         TTSchema     : to any text format via Template Toolkit
66
67 Included in this distribution are a few scripts designed to be user
68 interfaces for the actual SQL::Translator modules.  In the "bin"
69 directory, you will find:
70
71 *   sqlt-diagram
72 *   sqlt-graph
73 *   sqlt-dumper
74 *   sqlt
75 *   sqlt.cgi
76
77 All scripts not ending in ".cgi" are meant to be run from the command
78 line with various switches to control the input and output of the
79 scripts, while the ".cgi" script is a web-form frontend.  The script
80 you'll probably find most useful is "sqlt" which is meant to be the
81 main interface for translating from text-to-text.  The graphic
82 producers, however, have many extra switches, so there are scripts
83 specific for each of the the GraphViz and ER-diagram producers.  All
84 scripts start with "sqlt" so it will be easier to identify them on
85 your system.  All the non-CGI scripts will be installed in a system
86 path when you "make install," but you'll have to manually place the
87 CGI script into your web CGI directory to use it.
88
89 If you're more interested in using the SQL::Translator modules
90 directly, then you might be more interested to examine some of the
91 test scripts in the "t" directory.  The test suite is relatively
92 thorough and should give you an idea of how to parse a file and
93 manipulate the SQL::Translator::Schema objects.
94
95 INSTALLATION
96
97 The regular method:
98
99     $ perl Makefile.PL
100     $ make
101     $ make test
102     $ su -
103     # make install
104
105 COPYRIGHT
106
107 This program is free software; you can redistribute it and/or modify it
108 under the terms of the GNU General Public License as published by the
109 Free Software Foundation; version 2.
110
111 This program is distributed in the hope that it will be useful, but
112 WITHOUT ANY WARRANTY; without even the implied warranty of
113 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
114 Public License for more details.
115
116 You should have received a copy of the GNU General Public License along
117 with this program; if not, write to the Free Software Foundation, Inc.,
118 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
119
120 BUGS
121
122 Please use http://rt.cpan.org/ for reporting bugs.
123
124 PRAISE
125
126 If you find this module useful, please use 
127 "http://cpanratings.perl.org/rate/?distribution=SQL-Translator" to rate it.
128
129 SEE ALSO
130
131 Check out the SQLFairy homepage at Sourceforge for more information,
132 mailing lists, etc.:
133
134     http://sqlfairy.sourceforge.net/
135
136 AUTHORS
137
138 See the include AUTHORS file.