diff --git a/app/models/deploy.rb b/app/models/deploy.rb index 7032f96..87f1e53 100644 --- a/app/models/deploy.rb +++ b/app/models/deploy.rb @@ -23,6 +23,9 @@ class Deploy < ApplicationRecord after_initialize :default_hostname! # Eliminar los archivos generados por el deploy. before_destroy :remove_destination! + # Cambiar el lugar del destino antes de guardar los cambios, para que + # el hostname anterior siga estando disponible. + before_update :rename_destination!, if: :destination_changed? # Los hostnames alternativos se crean después de actualizar, cuando ya # se modificó el hostname. around_update :create_alternative_domain!, if: :destination_changed? @@ -171,7 +174,13 @@ class Deploy < ApplicationRecord # @return [Boolean] def default_hostname! self.hostname ||= default_hostname - true + end + + # Cambia la ubicación de destino cuando cambia el hostname. + def rename_destination! + return unless File.exist? destination_was + + FileUtils.mv destination_was, destination end # Elimina los archivos generados por el deploy