5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-07-01 12:46:08 +00:00
panel/db/migrate/20210809155434_add_canonical_deploy_to_sites.rb

31 lines
1 KiB
Ruby

# 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
# 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|
if site.name.end_with? '.'
deploy = site.deploys.find_or_create_by(type: 'DeployAlternativeDomain', hostname: site.name.sub(/\.\z/, ''))
end
deploy ||= site.deploys.order(created_at: :asc).find_by_type('DeployAlternativeDomain')
deploy ||= site.deploy_local
site.update_columns canonical_deploy_id: deploy.id
end
end
def down
remove_belongs_to :sites, :canonical_deploy, index: true
end
end