mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-27 07:16:19 +09:00
21999b49f4
* 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.
211 lines
5.2 KiB
Go
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
|
|
}
|