
GORM has certain downsides: - Code-first approach, where queries have to be translated to the Go code required to execute them. - GORM comes with its own SQLite implementation, which doesn't provide an on-connect callback. This means that new connections cannot correctly enable foreign key constraints, causing database consistency issues. [SQLC](https://sqlc.dev/) solves these issues for us. This commit doesn't fully replace GORM with SQLC, but introduces it for a few queries. Once all queries have been converted, GORM can be removed completely.
36 lines
572 B
SQL
36 lines
572 B
SQL
|
|
-- Jobs / Tasks queries
|
|
--
|
|
|
|
-- name: CreateJob :exec
|
|
INSERT INTO jobs (
|
|
created_at,
|
|
uuid,
|
|
name,
|
|
job_type,
|
|
priority,
|
|
status,
|
|
activity,
|
|
settings,
|
|
metadata,
|
|
storage_shaman_checkout_id
|
|
)
|
|
VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ? );
|
|
|
|
-- name: DeleteJob :exec
|
|
DELETE FROM jobs WHERE uuid = ?;
|
|
|
|
-- name: RequestJobDeletion :exec
|
|
UPDATE jobs SET
|
|
updated_at = @now,
|
|
delete_requested_at = @now
|
|
WHERE id = sqlc.arg('job_id');
|
|
|
|
-- name: FetchTask :one
|
|
SELECT * FROM tasks
|
|
WHERE uuid = ? LIMIT 1;
|
|
|
|
-- name: FetchJob :one
|
|
SELECT * FROM jobs
|
|
WHERE uuid = ? LIMIT 1;
|