⚠️
This is the documentation for the old GraphQL Mesh version v0. We recommend upgrading to the latest GraphQL Mesh version v1.
Migrate to GraphQL Mesh v1
Migrate to GraphQL Mesh v1
MySQL
This handler allows you to generate GraphQL schema from an existing MySQL database.
To get started, install the handler library:
npm i @graphql-mesh/mysql
Now, you can use it directly in your Mesh config file:
.meshrc.yaml
sources:
- name: Employees
handler:
mysql:
# You can use environment variables like
# host: "{env.MYSQL_HOST}"
# port: "{env.MYSQL_PORT}"
# user: "{env.MYSQL_USER}"
# password: "{env.MYSQL_PASSWORD}"
# database: "{env.MYSQL_DATABASE}"
host: localhost
port: 3306
user: root
password: passwd
database: employees
How does where
work?
Every CRUD operation has where
field in its input, so you can see all the columns of a table.
where
works like below;
{
getProduct(
where: {
id: 5
year: ">2010"
price: "100..200"
level: "<=3"
sn: "*str?"
label: "str"
code: "(1,2,4,10,11)"
}
) {
id
name
}
}
This GraphQL operation will send the following query to your MySQL database;
SELECT id, name FROM product WHERE id = 5 AND year > '2010' AND (price BETWEEN '100' AND '200') AND level <= '3' AND sn LIKE '%str\_' AND label = 'str' AND code IN (1,2,4,10,11)
Config API Reference
host
(type:String
) - The hostname of the database you are connecting to. (Default: localhost)port
(type:Int
) - The port number to connect to. (Default: 3306)localAddress
(type:String
) - The source IP address to use for TCP connectionuser
(type:String
) - The MySQL user to authenticate aspassword
(type:String
) - The password of that MySQL userdatabase
(type:String
) - Name of the database to use for this connectionssl
(type:Object
) - SSL Options for your MySQL connection:rejectUnauthorized
(type:Boolean
) - Default: trueca
(type:String
) - Path to your CA
pool
(type:Any
) - Use existingPool
instance Format: modulePath#exportNametables
(type:Array of String
, required) - Use specific tables for your schematableFields
(type:Array of Object
, required) - Use specific fields of specific tables:table
(type:String
, required)fields
(type:Array of String
, required)