Running database agnostic queries (MySQL)

Oohmi5/19/2023
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), etc
ISIvan Shadrin5/21/2023
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.
Oohmi5/21/2023
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
Oohmi5/21/2023
and i dont see any methods on the Kysely instance that seems to allow for arbitrary sql statements?
ISIvan Shadrin5/21/2023
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.
const result = await sql<void>`create database db_name'.execute(db)
Oohmi5/21/2023
ah awesome thanks! i had looked over a similar page i had thought the sql template stings could only be passed into builder functions