Files
Memoh/internal/db/sqlc/snapshots.sql.go
T
BBQ 21999b49f4 feat(container): add explicit data workflows and snapshot rollback (#193)
* feat(container): add explicit data workflows and snapshot rollback

Make container upgrades and recreation data-safe by adding explicit preserve, export, import, restore, and rollback flows across the backend, SDK, and web UI.

* fix(container): resolve go lint issues

Fix formatting and lint violations introduced by the container data workflow changes so the Go CI lint job passes cleanly.
2026-03-06 17:57:48 +08:00

211 lines
5.2 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
// source: snapshots.sql
package sqlc
import (
"context"
"github.com/jackc/pgx/v5/pgtype"
)
const getSnapshotByContainerAndRuntimeName = `-- name: GetSnapshotByContainerAndRuntimeName :one
SELECT
id,
container_id,
runtime_snapshot_name,
display_name,
parent_runtime_snapshot_name,
snapshotter,
source,
created_at
FROM snapshots
WHERE container_id = $1
AND runtime_snapshot_name = $2
LIMIT 1
`
type GetSnapshotByContainerAndRuntimeNameParams struct {
ContainerID string `json:"container_id"`
RuntimeSnapshotName string `json:"runtime_snapshot_name"`
}
func (q *Queries) GetSnapshotByContainerAndRuntimeName(ctx context.Context, arg GetSnapshotByContainerAndRuntimeNameParams) (Snapshot, error) {
row := q.db.QueryRow(ctx, getSnapshotByContainerAndRuntimeName, arg.ContainerID, arg.RuntimeSnapshotName)
var i Snapshot
err := row.Scan(
&i.ID,
&i.ContainerID,
&i.RuntimeSnapshotName,
&i.DisplayName,
&i.ParentRuntimeSnapshotName,
&i.Snapshotter,
&i.Source,
&i.CreatedAt,
)
return i, err
}
const listSnapshotsByContainerID = `-- name: ListSnapshotsByContainerID :many
SELECT
id,
container_id,
runtime_snapshot_name,
display_name,
parent_runtime_snapshot_name,
snapshotter,
source,
created_at
FROM snapshots
WHERE container_id = $1
ORDER BY created_at DESC
`
func (q *Queries) ListSnapshotsByContainerID(ctx context.Context, containerID string) ([]Snapshot, error) {
rows, err := q.db.Query(ctx, listSnapshotsByContainerID, containerID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Snapshot
for rows.Next() {
var i Snapshot
if err := rows.Scan(
&i.ID,
&i.ContainerID,
&i.RuntimeSnapshotName,
&i.DisplayName,
&i.ParentRuntimeSnapshotName,
&i.Snapshotter,
&i.Source,
&i.CreatedAt,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listSnapshotsWithVersionByContainerID = `-- name: ListSnapshotsWithVersionByContainerID :many
SELECT
s.id,
s.container_id,
s.runtime_snapshot_name,
s.display_name,
s.parent_runtime_snapshot_name,
s.snapshotter,
s.source,
s.created_at,
cv.version
FROM snapshots s
LEFT JOIN container_versions cv ON cv.snapshot_id = s.id
WHERE s.container_id = $1
ORDER BY s.created_at DESC
`
type ListSnapshotsWithVersionByContainerIDRow struct {
ID pgtype.UUID `json:"id"`
ContainerID string `json:"container_id"`
RuntimeSnapshotName string `json:"runtime_snapshot_name"`
DisplayName pgtype.Text `json:"display_name"`
ParentRuntimeSnapshotName pgtype.Text `json:"parent_runtime_snapshot_name"`
Snapshotter string `json:"snapshotter"`
Source string `json:"source"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
Version pgtype.Int4 `json:"version"`
}
func (q *Queries) ListSnapshotsWithVersionByContainerID(ctx context.Context, containerID string) ([]ListSnapshotsWithVersionByContainerIDRow, error) {
rows, err := q.db.Query(ctx, listSnapshotsWithVersionByContainerID, containerID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ListSnapshotsWithVersionByContainerIDRow
for rows.Next() {
var i ListSnapshotsWithVersionByContainerIDRow
if err := rows.Scan(
&i.ID,
&i.ContainerID,
&i.RuntimeSnapshotName,
&i.DisplayName,
&i.ParentRuntimeSnapshotName,
&i.Snapshotter,
&i.Source,
&i.CreatedAt,
&i.Version,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const upsertSnapshot = `-- name: UpsertSnapshot :one
INSERT INTO snapshots (
container_id,
runtime_snapshot_name,
display_name,
parent_runtime_snapshot_name,
snapshotter,
source
)
VALUES (
$1,
$2,
$3,
$4,
$5,
$6
)
ON CONFLICT (container_id, runtime_snapshot_name) DO UPDATE
SET
display_name = EXCLUDED.display_name,
parent_runtime_snapshot_name = EXCLUDED.parent_runtime_snapshot_name,
snapshotter = EXCLUDED.snapshotter,
source = EXCLUDED.source
RETURNING id, container_id, runtime_snapshot_name, display_name, parent_runtime_snapshot_name, snapshotter, source, created_at
`
type UpsertSnapshotParams struct {
ContainerID string `json:"container_id"`
RuntimeSnapshotName string `json:"runtime_snapshot_name"`
DisplayName pgtype.Text `json:"display_name"`
ParentRuntimeSnapshotName pgtype.Text `json:"parent_runtime_snapshot_name"`
Snapshotter string `json:"snapshotter"`
Source string `json:"source"`
}
func (q *Queries) UpsertSnapshot(ctx context.Context, arg UpsertSnapshotParams) (Snapshot, error) {
row := q.db.QueryRow(ctx, upsertSnapshot,
arg.ContainerID,
arg.RuntimeSnapshotName,
arg.DisplayName,
arg.ParentRuntimeSnapshotName,
arg.Snapshotter,
arg.Source,
)
var i Snapshot
err := row.Scan(
&i.ID,
&i.ContainerID,
&i.RuntimeSnapshotName,
&i.DisplayName,
&i.ParentRuntimeSnapshotName,
&i.Snapshotter,
&i.Source,
&i.CreatedAt,
)
return i, err
}