/db/post_migrate/20170606202615_move_appearance_to_system_dir.rb

https://gitlab.com/visay/gitlab-ce · Ruby · 57 lines · 44 code · 13 blank · 0 comment · 2 complexity · 82d072ca726e47c5d2e9373993afda68 MD5 · raw file

  1. class MoveAppearanceToSystemDir < ActiveRecord::Migration
  2. include Gitlab::Database::MigrationHelpers
  3. disable_ddl_transaction!
  4. DOWNTIME = false
  5. DIRECTORY_TO_MOVE = 'appearance'.freeze
  6. def up
  7. source = File.join(old_upload_dir, DIRECTORY_TO_MOVE)
  8. destination = File.join(new_upload_dir, DIRECTORY_TO_MOVE)
  9. move_directory(source, destination)
  10. end
  11. def down
  12. source = File.join(new_upload_dir, DIRECTORY_TO_MOVE)
  13. destination = File.join(old_upload_dir, DIRECTORY_TO_MOVE)
  14. move_directory(source, destination)
  15. end
  16. def move_directory(source, destination)
  17. unless file_storage?
  18. say 'Not using file storage, skipping'
  19. return
  20. end
  21. unless File.directory?(source)
  22. say "#{source} did not exist, skipping"
  23. return
  24. end
  25. if File.directory?(destination)
  26. say "#{destination} already existed, skipping"
  27. return
  28. end
  29. say "Moving #{source} -> #{destination}"
  30. FileUtils.mv(source, destination)
  31. end
  32. def file_storage?
  33. CarrierWave::Uploader::Base.storage == CarrierWave::Storage::File
  34. end
  35. def base_directory
  36. Rails.root
  37. end
  38. def old_upload_dir
  39. File.join(base_directory, "public", "uploads")
  40. end
  41. def new_upload_dir
  42. File.join(base_directory, "public", "uploads", "system")
  43. end
  44. end