Skip to main content

mysql Adaptor developer README.md

Source: https://github.com/OpenFn/adaptors/tree/main/packages/mysql

Language MySQL

Language Pack for building expressions and operations to run MySQL queries.

Documentation

View the docs site for full technical documentation.

Configuration

View all the required and optional properties for state.configuration in the official configuration-schema definition.

Execute a query

Execute an sql query with the node mysql package.

query({
sql: state => {
return `select * from ${state.data.table} where id = ?;`;
},
timeout: 4000,
values: ['007'],
});

Execute a sql query

This function takes either a string or a function that takes states and returns a string.

sqlString(state => {
return (
`INSERT INTO untitled_table (name, the_geom) VALUES ('` +
state.data.version +
`', ` +
dataValue('form.Choix_tache')(state) +
`)`
);
});

Insert a single record

This function is used to insert a single record in a MySQL database.

insert(
'some_table',
fields(
field('firstname', dataValue('form.patient_firstname')),
field('lastname', dataValue('form.patient_lastname'))
)
);

Insert or update a single record

This function is used to insert a single record in a MySQL database or update it if there is a match.

upsert(
'some_table',
fields(
field('firstname', dataValue('form.patient_firstname')),
field('lastname', dataValue('form.patient_lastname'))
)
);

Upsert many records

This function allows the upsert of a set of records inside a table all at once.

upsertMany(
'users', // the DB table
[
{ name: 'one', email: 'one@openfn.org' },
{ name: 'two', email: 'two@openfn.org' },
]
);

or

upsertMany('users', state =>
state.data.users.map(user => {
name: user['name'],
email: user['email']
})
);

Development

Clone the adaptors monorepo. Follow the Getting Started guide inside to get set up.

Run tests using pnpm run test or pnpm run test:watch

Build the project using pnpm build.

To just build the docs run pnpm build docs