The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

NAME

Yancy::Backend::Mysql - A backend for MySQL using Mojo::mysql

VERSION

version 1.088

SYNOPSIS

### URL string
plugin Yancy => {
backend => 'mysql:///mydb',
read_schema => 1,
};
### Mojo::mysql object
plugin Yancy => {
backend => { Mysql => Mojo::mysql->new( 'mysql:///mydb' ) },
read_schema => 1,
};
### Hash reference
plugin Yancy => {
backend => {
Mysql => {
dsn => 'dbi:mysql:dbname',
username => 'fry',
password => 'b3nd3r1sgr34t',
},
},
read_schema => 1,
};

DESCRIPTION

This Yancy backend allows you to connect to a MySQL database to manage the data inside. This backend uses Mojo::mysql to connect to MySQL.

See Yancy::Backend for the methods this backend has and their return values.

Backend URL

The URL for this backend takes the form mysql://<user>:<pass>@<host>:<port>/<db>.

Some examples:

# Just a DB
# User+DB (server on localhost:3306)
# User+Pass Host and DB
mysql://user:pass@example.com/mydb

Schema Names

The schema names for this backend are the names of the tables in the database.

So, if you have the following schema:

CREATE TABLE people (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL
);
CREATE TABLE business (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NULL
);

You could map that to the following schema:

{
backend => 'mysql://user@/mydb',
schema => {
People => {
required => [ 'name', 'email' ],
properties => {
id => {
type => 'integer',
readOnly => 1,
},
name => { type => 'string' },
email => { type => 'string' },
},
},
Business => {
required => [ 'name' ],
properties => {
id => {
type => 'integer',
readOnly => 1,
},
name => { type => 'string' },
email => { type => 'string' },
},
},
},
}

SEE ALSO

Mojo::mysql, Yancy

AUTHOR

Doug Bell <preaction@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2021 by Doug Bell.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.