da149e1204
* Add OAuth table schemas * Refresh samples * Expand password column length * Add copyright notice of OAuth2 schema author * Refresh samples |
||
---|---|---|
.. | ||
.openapi-generator | ||
Model | ||
.openapi-generator-ignore | ||
mysql_schema.sql | ||
README.md |
MySQL Schema Codegen
Main goal of this generator is to provide database structure file almost identical you usually generate with:
- PHPMyAdmin (Export structure only, SQL syntax)
- Adminer
mysqldump
function
Requirements
- MySQL Server ^5.7.8 (
JSON
column type added)
Openapi Data Type to MySQL Data Type mapping
Openapi Data Type | Openapi Data Format | Dependent properties | MySQL Data Types | Default MySQL Data Type |
---|---|---|---|---|
integer |
int32 |
minimum / maximum / minimumExclusive / maximumExclusive |
TINYINT / SMALLINT / MEDIUMINT / INT / BIGINT |
INT |
integer |
int64 |
minimum / maximum / minimumExclusive / maximumExclusive |
TINYINT / SMALLINT / MEDIUMINT / INT / BIGINT |
BIGINT |
boolean |
TINYINT |
TINYINT |
||
number |
float |
DECIMAL |
DECIMAL |
|
number |
double |
DECIMAL |
DECIMAL |
|
string |
minLength / maxLength |
CHAR / VARCHAR / TEXT / MEDIUMTEXT / LONGTEXT |
TEXT |
|
string |
byte |
TEXT |
TEXT |
|
string |
binary |
MEDIUMBLOB |
MEDIUMBLOB |
|
file |
MEDIUMBLOB |
MEDIUMBLOB |
||
string |
date |
DATE |
DATE |
|
string |
date-time |
DATETIME |
DATETIME |
|
string |
enum |
ENUM |
ENUM |
|
array |
JSON |
JSON |
||
object |
JSON |
JSON |
||
\Model\User (referenced definition) |
TEXT |
TEXT |
How to use
Produced file(mysql_schema.sql
) contains every table definition. Current implementation doesn't drop or modify existed tables, if you want rewrite whole schema make sure they're not presented.
PHPMyAdmin
- Choose Import tab from the home screen
- In section File to import click to Choose File and find generated
mysql_schema.sql
- Make sure Format selector set to SQL
- Push Go button
Adminer
- Click Import link in left sidebar
- In File upload fieldset click to Choose Files and find generated
mysql_schema.sql
- Push Execute button
Prepared SQL queries
Model folder contains SQL queries(SELECT *
, SELECT
, INSERT
, UPDATE
, DELETE
) usually suggested by PHPMyAdmin
when you hit SQL
tab. They are absolutely useless without adaptation to your needs. Copypaste them then edit.
Important! Some of SQLs(INSERT
/UPDATE
) contains question marks(?
) which are parameter placeholders. You need to bind values to these params to execute query.
If your MySQL driver doesn't support named parameters(PHP PDO
supports while PHP mysqli
doesn't) you need to make sure that namedParametersEnabled
generator option is disabled.