mirror of
https://0xacab.org/sutty/sutty
synced 2024-07-01 12:46:08 +00:00
31 lines
1 KiB
Ruby
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
|