Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/reneeb/mysql-workbench-parser

Parse .mwb files created with MySQL workbench tool.
https://github.com/reneeb/mysql-workbench-parser

hacktoberfest mysql parser workbench

Last synced: 22 days ago
JSON representation

Parse .mwb files created with MySQL workbench tool.

Awesome Lists containing this project

README

        

[![Build Status](https://travis-ci.org/reneeb/MySQL-Workbench-Parser.svg?branch=master)](https://travis-ci.org/reneeb/MySQL-Workbench-Parser)
[![Kwalitee status](https://cpants.cpanauthors.org/dist/MySQL-Workbench-Parser.png)](https://cpants.cpanauthors.org/dist/MySQL-Workbench-Parser)
[![GitHub issues](https://img.shields.io/github/issues/reneeb/MySQL-Workbench-Parser.svg)](https://github.com/reneeb/MySQL-Workbench-Parser/issues)

# NAME

MySQL::Workbench::Parser - parse .mwb files created with MySQL Workbench

# VERSION

version 1.11

# SYNOPSIS

# create the parser
my $parser = MySQL::Workbench::Parser->new(
file => '/path/to/file.mwb',
);

# access tables of the workbench ER model
my @tables = @{ $parser->tables };

# access views of the workbench ER model
my @views = @{ $parser->views };

# DESCRIPTION

The MySQL Workbench is a tool to design database entity relationship models.
This parser parses .mwb files created with that tool and extracts all relevant
information.

# METHODS

## new

Create a new parser object

my $parser = MySQL::Workbench::Parser->new(
file => '/path/to/file.mwb',
);

## dump

dump the database structure as YAML

my $yaml = $parser->dump;

## get\_datatype

get datatype for a workbench column datatype

my $datatype = $table->get_datatype( 'com.mysql.rdbms.mysql.datatype.mediumtext' );

returns the MySQL name of the datatype

MEDIUMTEXT

# ATTRIBUTES

- tables

An array of [MySQL::Workbench::Parser::Table](https://metacpan.org/pod/MySQL%3A%3AWorkbench%3A%3AParser%3A%3ATable) objects

my @tables = $parser->tables;

- views

An array of [MySQL::Workbench::Parser::View](https://metacpan.org/pod/MySQL%3A%3AWorkbench%3A%3AParser%3A%3AView) objects

my @views = $parser->views;

- file
- datatypes
- dom

The [DOM](https://metacpan.org/pod/XML::LibXML) created by [XML::LibXML](https://metacpan.org/pod/XML%3A%3ALibXML).

- lint

If set to false, the linting isn't done (default: true)

# WARNINGS

The ER model designed with Workbench is checked for:

- duplicate indices
- duplicate table names
- duplicate column names in a table

# Development

The distribution is contained in a Git repository, so simply clone the
repository

```
$ git clone git://github.com/reneeb/MySQL-Workbench-Parser.git
```

and change into the newly-created directory.

```
$ cd MySQL-Workbench-Parser
```

The project uses [`Dist::Zilla`](https://metacpan.org/pod/Dist::Zilla) to
build the distribution, hence this will need to be installed before
continuing:

```
$ cpanm Dist::Zilla
```

To install the required prequisite packages, run the following set of
commands:

```
$ dzil authordeps --missing | cpanm
$ dzil listdeps --author --missing | cpanm
```

The distribution can be tested like so:

```
$ dzil test
```

To run the full set of tests (including author and release-process tests),
add the `--author` and `--release` options:

```
$ dzil test --author --release
```

# AUTHOR

Renee Baecker

# COPYRIGHT AND LICENSE

This software is Copyright (c) 2018 by Renee Baecker.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)