# frozen_string_literal: true # Los sitios pueden tener muchos tipos de publicación pero solo uno es # el principal. Al usar un campo específico, podemos validar mejor su # presencia y modificación. # # El valor por defecto es 0 para poder crear la columna sin modificarla # después, pero la idea es que nunca haya ceros. class AddCanonicalDeployToSites < ActiveRecord::Migration[6.1] def up add_belongs_to :sites, :canonical_deploy, index: true, null: false, default: 0 # Si el sitio tenía un dominio alternativo, usar ese en lugar del # local, asumiendo que es el primero de todos los posibles. Site.find_each do |site| deploy = site.deploys.order(created_at: :asc).find_by_type('DeployAlternativeDomain') deploy ||= site.deploy_local site.update canonical_deploy_id: deploy.id end end def down remove_belongs_to :sites, :canonical_deploy, index: true end end