Running database agnostic queries (MySQL)
As part of my test suite, I drop/create databases programmatically. Is it possible to have a Kysely connection that isn't attached to a specific database, so that I could run queries like
DROP DATABASE a
or CREATE DATABASE a
?
Other similar use cases include:
RESET QUERY CACHE
, SELECT 1
(for latency check), etc4 Replies
Take a look at migration section of docs https://kysely.dev/docs/migrations
Seems like you could use such approach as a workaround to write database structure agnostic queries .
async function functionName(db: Kysely<any>): Promise<void> {
// database agnostic query
}
But you would still need to initialize driver for each specific database connection.Migrations | Kysely
Migration files should look like this:
is there a specific part you're hinting at? i think
db.schema
relies on a connection to an existing database, so CREATE/DROP DATABASE
wouldnt work
and i dont see any methods on the Kysely instance that seems to allow for arbitrary sql statements?Ah. I'm sorry, I thought the question was about create/drop table.
If database connection has sufficient permissions may be you could solve this by running raw sql? https://kysely-org.github.io/kysely/interfaces/Sql.html
E.g.
Sql | kysely
Documentation for kysely
ah awesome thanks! i had looked over a similar page i had thought the sql template stings could only be passed into builder functions