-
Notifications
You must be signed in to change notification settings - Fork 279
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to prevent Kysely from crashing node app if database goes down #836
Comments
Are you absolutely sure you don't have some call somewhere without an exception handler? The stack trace shows the error comes all the way up to the Try converting all kysely calls to |
Hi @koskimas Thanks for pointer. I went back over the code base to check for instances of execute() without a catch and did find a few, this was the cause of the error above. However after I ensure a
|
I'm not seeing any uncaught exception errors in the log, so it's unclear what's actually crashing the server. @igalklebanov Any ideas? Could it be we're not listening to the |
I think i might have resolved the issue by creating the the dialect as show below with the error handler. Unsure if this is classed as user error or if the Kysely library should of caught that error. Either way i'm happy that we got to the bottom of it :) Appreciate the help! import { Database } from './types.ts' // this is the Database interface we defined earlier
import * as tedious from 'tedious'
import * as tarn from 'tarn'
import { Kysely, MssqlDialect } from 'kysely'
const dialect = new MssqlDialect({
tarn: {
...tarn,
options: {
min: 0,
max: 10,
},
},
tedious: {
...tedious,
connectionFactory: () => new tedious.Connection({
authentication: {
options: {
password: 'password',
userName: 'username',
},
type: 'default',
},
options: {
database: 'some_db',
port: 1433,
trustServerCertificate: true,
},
server: 'localhost',
}).on('error', console.log), //THIS LINE RESOLVES THE ISSUE
},
})
// Database interface is passed to Kysely's constructor, and from now on, Kysely
// knows your database structure.
// Dialect is passed to Kysely's constructor, and from now on, Kysely knows how
// to communicate with your database.
export const db = new Kysely<Database>({
dialect,
}) |
I think this is something Kysely should do automatically |
@koskimas @AnthonyPhan Yeah, haven't handled this one by mistake. Let's do it. |
Hi All,
I am trying to incorporate Kysely into a larger Node.js application to write data to a MSSQL database. I create a instance of Kysely exactly like in the doc as shown below and execute inserts with an error catch handler however when the SQL database is not reachable the whole node application crashes.
How can I best handle situation where the SQL database is unreachable without it crashing the whole app?
Error
Creating Kysely instance
The text was updated successfully, but these errors were encountered: