HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux vmi1674223.contaboserver.net 5.4.0-182-generic #202-Ubuntu SMP Fri Apr 26 12:29:36 UTC 2024 x86_64
User: root (0)
PHP: 7.4.3-4ubuntu2.22
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/openproject/db/migrate/20190920102446_clean_custom_values.rb
class CleanCustomValues < ActiveRecord::Migration[5.2]
  def up
    invalid_cv = CustomValue
      .joins(:custom_field)
      .where("#{CustomField.table_name}.field_format = 'list'")
      .where.not(value: '')
      .where("value !~ '^[0-9]+$'")

    if invalid_cv.count > 0
      warn_string = "Replacing invalid list custom values:\n"
      invalid_cv.pluck(:customized_type, :customized_id, :value).each do |customized_type, customized_id, value|
        warn_string << "- #{customized_type} ##{customized_id}: Value was #{value.inspect}\n"
      end

      warn warn_string
      invalid_cv.update_all(value: '')
    end
  end

  def down
    # This migration does not restore data
  end
end