Pipeline registrazione/upload con storage S3, archivio web e app, proxy replay per il browser, OAuth YouTube sulla pagina club (Premium Full) e footer legale. Co-authored-by: Cursor <cursoragent@cursor.com>
58 lines
1.8 KiB
Ruby
58 lines
1.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class MoveYoutubeCredentialsToClubs < ActiveRecord::Migration[7.2]
|
|
def up
|
|
unless column_exists?(:youtube_credentials, :club_id)
|
|
add_reference :youtube_credentials, :club, type: :uuid, foreign_key: true
|
|
end
|
|
|
|
if column_exists?(:youtube_credentials, :team_id)
|
|
say_with_time "Associa credenziali YouTube alle società" do
|
|
execute <<~SQL.squish
|
|
UPDATE youtube_credentials yc
|
|
SET club_id = t.club_id
|
|
FROM teams t
|
|
WHERE t.id = yc.team_id AND yc.club_id IS NULL
|
|
SQL
|
|
end
|
|
|
|
execute <<~SQL.squish
|
|
DELETE FROM youtube_credentials yc
|
|
USING youtube_credentials newer
|
|
WHERE yc.club_id = newer.club_id
|
|
AND yc.id <> newer.id
|
|
AND yc.updated_at < newer.updated_at
|
|
SQL
|
|
|
|
change_column_null :youtube_credentials, :club_id, false
|
|
remove_index :youtube_credentials, :team_id, if_exists: true
|
|
remove_reference :youtube_credentials, :team, foreign_key: true
|
|
end
|
|
|
|
unless index_exists?(:youtube_credentials, :club_id)
|
|
add_index :youtube_credentials, :club_id, unique: true
|
|
end
|
|
end
|
|
|
|
def down
|
|
return unless column_exists?(:youtube_credentials, :club_id)
|
|
|
|
add_reference :youtube_credentials, :team, type: :uuid, foreign_key: true unless column_exists?(:youtube_credentials, :team_id)
|
|
|
|
execute <<~SQL.squish
|
|
UPDATE youtube_credentials yc
|
|
SET team_id = (
|
|
SELECT t.id FROM teams t
|
|
WHERE t.club_id = yc.club_id
|
|
ORDER BY t.created_at
|
|
LIMIT 1
|
|
)
|
|
SQL
|
|
|
|
change_column_null :youtube_credentials, :team_id, false
|
|
remove_index :youtube_credentials, :club_id, if_exists: true
|
|
remove_reference :youtube_credentials, :club, foreign_key: true
|
|
add_index :youtube_credentials, :team_id, if_not_exists: true
|
|
end
|
|
end
|