openapi-generator/samples/schema/petstore/mysql
Yuriy Belenko da149e1204
[mysql] Add OAuth2 framework tables (#5807)
* Add OAuth table schemas

* Refresh samples

* Expand password column length

* Add copyright notice of OAuth2 schema author

* Refresh samples
2020-04-21 14:25:56 +08:00
..
.openapi-generator update samples (#5722) 2020-03-27 13:55:55 +08:00
Model [mysql] Add basic SQL queries (#5757) 2020-04-12 16:49:50 +08:00
.openapi-generator-ignore MySQL Schema Generator #955 (#1055) 2018-10-01 15:59:18 +08:00
mysql_schema.sql [mysql] Add OAuth2 framework tables (#5807) 2020-04-21 14:25:56 +08:00
README.md [mysql] Add basic SQL queries (#5757) 2020-04-12 16:49:50 +08:00

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

MySQL documentation

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

  1. Choose Import tab from the home screen
  2. In section File to import click to Choose File and find generated mysql_schema.sql
  3. Make sure Format selector set to SQL
  4. Push Go button

Adminer

  1. Click Import link in left sidebar
  2. In File upload fieldset click to Choose Files and find generated mysql_schema.sql
  3. 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.