Feat: Added support to mysql on some raw queries

Signed-off-by: Daniel Dias Branco Arthaud <arthaud@gmail.com>
This commit is contained in:
Daniel Dias Branco Arthaud
2022-08-15 15:15:34 -03:00
parent 262518caa5
commit 243533ecdc
4 changed files with 57 additions and 16 deletions
+15 -8
View File
@@ -292,14 +292,21 @@ export class TaskWorker {
seconds: dt,
})}`,
);
nextRun = this.knex.client.config.client.includes('sqlite3')
? this.knex.raw(
`max(datetime(next_run_start_at, ?), datetime('now'))`,
[`+${dt} seconds`],
)
: this.knex.raw(
`greatest(next_run_start_at + interval '${dt} seconds', now())`,
);
if (this.knex.client.config.client.includes('sqlite3')) {
nextRun = this.knex.raw(
`max(datetime(next_run_start_at, ?), datetime('now'))`,
[`+${dt} seconds`],
);
} else if (this.knex.client.config.client.includes('mysql')) {
nextRun = this.knex.raw(
`greatest(next_run_start_at + interval ${dt} second, now())`,
);
} else {
nextRun = this.knex.raw(
`greatest(next_run_start_at + interval '${dt} seconds', now())`,
);
}
}
const rows = await this.knex<DbTasksRow>(DB_TASKS_TABLE)
+10 -3
View File
@@ -38,9 +38,16 @@ export function nowPlus(duration: Duration | undefined, knex: Knex) {
if (!seconds) {
return knex.fn.now();
}
return knex.client.config.client.includes('sqlite3')
? knex.raw(`datetime('now', ?)`, [`${seconds} seconds`])
: knex.raw(`now() + interval '${seconds} seconds'`);
if (knex.client.config.client.includes('sqlite3')) {
return knex.raw(`datetime('now', ?)`, [`${seconds} seconds`]);
}
if (knex.client.config.client.includes('mysql')) {
return knex.raw(`now() + interval ${seconds} second`);
}
return knex.raw(`now() + interval '${seconds} seconds'`);
}
/**