NAME¶
Parse::Dia::SQL - Convert Dia class diagrams into SQL.
SYNOPSIS¶
use Parse::Dia::SQL;
my $dia = Parse::Dia::SQL->new(
file => 't/data/TestERD.dia',
db => 'db2'
);
print $dia->get_sql();
# or command-line version
perl parsediasql --file t/data/TestERD.dia --db db2
DESCRIPTION¶
Dia is a diagram creation program for Linux, Unix and Windows released under the
GNU General Public License.
Parse::Dia::SQL converts Dia class diagrams into SQL.
Parse::Dia::SQL is the parser that interprets the .dia file(s) into an internal
datastructure.
Parse::Dia::SQL::Output (or one of its sub classes) can take the datastructure
and generate the SQL statements it represents.
MODELLING HOWTO¶
See <
http://tedia2sql.tigris.org/usingtedia2sql.html>
Modelling differences from tedia2sql¶
- •
- Index options are supported. Text is taken from the comments field
of the operation, i.e. the index. A database specific default value
is used if the comments field is left blank. Consult the Output sub
class' constructor.
- •
- Type mapping is supported. A type mapping is a user-defined column name
replacement. Unlike tedia2sql the type mapping is non-recursive.
Consult "t/data/typemap.dia" for an example.
- •
- Preliminary support for Dia's database shapes is added.
- •
- Table comments are used as table postfix options. This means
per-table options (e.g. partitioning options) are supported on a
per-database level.
- •
- backticks notation is supported for MySQL-InnoDB.
DIA VERSIONS¶
Parse::Dia::SQL has been tested with Dia versions 0.93 - 0.97.
Parse::Dia::SQL uses the XML "version" tag information in the
.dia input file to determine how each XML construct is formatted.
Future versions of Dia may change the internal format, and XML
"version" tag is used to detect such changes.
DATABASE SUPPORT¶
The following databases are supported:
- DB2
- Informix
- Ingres
- Oracle
- Postgres
- Sas
- SQLite3
- SQLite3fk (with foreign key support)
- Sybase
- MySQL InnoDB
- MySQL MyISAM
Adding support for additional databases means to create a subclass of
Parse::Dia::SQL::Output.
Patches are welcome.
AUTHOR¶
Parse::Dia::SQL is based on
tedia2sql by Tim Ellis and others. See the
AUTHORS file for details.
Modified by Andreas Faafeng, "<aff at cpan.org>" for release on
CPAN.
BUGS¶
Please report any bugs or feature requests to "bug-parse-dia-sql at
rt.cpan.org", or through the web interface at
<
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Parse-Dia-SQL>. I will
be notified, and then you'll automatically be notified of progress on your bug
as I make changes.
SUPPORT¶
You can find documentation for this module with the perldoc command.
perldoc Parse::Dia::SQL
You can also look for information at:
- •
- Project home
Documentation and public source code repository:
<http://tedia2sql.tigris.org/>
- •
- RT: CPAN's request tracker
<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Parse-Dia-SQL>
- •
- AnnoCPAN: Annotated CPAN documentation
<http://annocpan.org/dist/Parse-Dia-SQL>
- •
- CPAN Ratings
<http://cpanratings.perl.org/d/Parse-Dia-SQL>
- •
- Search CPAN
<http://search.cpan.org/dist/Parse-Dia-SQL>
SEE ALSO¶
- •
- <http://tedia2sql.tigris.org/>
- •
- <http://live.gnome.org/Dia>
ACKNOWLEDGEMENTS¶
See the AUTHORS file.
LICENSE¶
This program is released under the GNU General Public License.
TERMINOLOGY¶
By
database we mean relational database management system (RDBMS).
METHODS¶
- new()
- The constructor. Mandatory arguments:
file - The .dia file to parse
db - The target database type
Dies if target database is unknown or unsupported.
- get_sql()
- Return sql for given db. Calls underlying methods that performs parsing
and sql generation.