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)