Aggiunge replay YouTube temporaneo, pull registrazioni dai CPX e snapshot ingest in admin.
Così overflow Hetzner e VOD YouTube restano in archivio dopo lo spegnimento del nodo, e la colonna ingest non si svuota. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class AddTemporaryReplayFieldsToRecordings < ActiveRecord::Migration[7.2]
|
||||
def change
|
||||
change_table :recordings, bulk: true do |t|
|
||||
t.string :storage_policy, null: false, default: "retained"
|
||||
t.datetime :temp_expires_at
|
||||
t.datetime :youtube_verified_at
|
||||
t.datetime :local_media_purged_at
|
||||
end
|
||||
|
||||
add_index :recordings, %i[storage_policy temp_expires_at],
|
||||
name: "index_recordings_on_storage_policy_and_temp_expires_at"
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,51 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class AddIngestSnapshotToStreamSessions < ActiveRecord::Migration[7.2]
|
||||
def up
|
||||
add_column :stream_sessions, :ingest_slug, :string
|
||||
add_column :stream_sessions, :ingest_role, :string
|
||||
add_index :stream_sessions, :ingest_slug
|
||||
|
||||
execute <<~SQL
|
||||
UPDATE stream_sessions ss
|
||||
SET ingest_slug = sn.slug,
|
||||
ingest_role = sn.role
|
||||
FROM stream_nodes sn
|
||||
WHERE ss.stream_node_id = sn.id
|
||||
AND ss.ingest_slug IS NULL
|
||||
SQL
|
||||
|
||||
execute <<~SQL
|
||||
UPDATE stream_sessions ss
|
||||
SET ingest_slug = ev.slug
|
||||
FROM (
|
||||
SELECT DISTINCT ON (stream_session_id)
|
||||
stream_session_id,
|
||||
metadata->>'stream_node' AS slug
|
||||
FROM stream_events
|
||||
WHERE event_type = 'pairing'
|
||||
AND COALESCE(metadata->>'stream_node', '') <> ''
|
||||
ORDER BY stream_session_id, occurred_at ASC
|
||||
) ev
|
||||
WHERE ss.id = ev.stream_session_id
|
||||
AND ss.ingest_slug IS NULL
|
||||
SQL
|
||||
|
||||
execute <<~SQL
|
||||
UPDATE stream_sessions
|
||||
SET ingest_role = CASE
|
||||
WHEN ingest_slug = 'home' THEN 'home'
|
||||
WHEN ingest_slug LIKE 'ingest-lab%' THEN 'lab'
|
||||
WHEN ingest_slug LIKE 'ingest-%' THEN 'cloud'
|
||||
ELSE ingest_role
|
||||
END
|
||||
WHERE ingest_slug IS NOT NULL AND ingest_role IS NULL
|
||||
SQL
|
||||
end
|
||||
|
||||
def down
|
||||
remove_index :stream_sessions, :ingest_slug
|
||||
remove_column :stream_sessions, :ingest_role
|
||||
remove_column :stream_sessions, :ingest_slug
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user