Подтвердить что ты не робот

Как выполнить миграцию Rails с помощью программы Paperclip

Как люди пишут свои миграции Rails, которые включают Paperclip? Я чувствую, что, возможно, мне не хватает чего-то очевидного, поскольку теперь я написал свои собственные помощники помощников по миграции, что упрощает и также заботится о необходимых изменениях файловой системы. И, конечно же, вы должны протестировать эти виды миграции в среде разработки (и промежуточной) перед развертыванием в производство.

Перенос приписки, переименование, добавление и удаление помощников
Помощник по переносу пути к папке скрепки (на самом деле не миграция базы данных, но думаю, что она все равно подходит)

Есть ли лучшие решения или лучшие практики? некоторые люди, похоже, создают рейк-задачи и т.д., которые кажутся довольно громоздкими.

4b9b3361

Ответ 1

Для этого есть драгоценные камни:

Рельсы 2:

script/generate paperclip Class attachment1 (attachment2 ...)

Рельсы 3:

rails generate paperclip Class attachment1 (attachment2 ...) 

например.

rails generate paperclip User avatar 

генерирует:

class AddAttachmentsAvatarToUser < ActiveRecord::Migration
  def self.up
    add_column :users, :avatar_file_name, :string
    add_column :users, :avatar_content_type, :string
    add_column :users, :avatar_file_size, :integer
    add_column :users, :avatar_updated_at, :datetime
  end

  def self.down
    remove_column :users, :avatar_file_name
    remove_column :users, :avatar_content_type
    remove_column :users, :avatar_file_size
    remove_column :users, :avatar_updated_at
  end
end

Также см. вспомогательные методы, используемые в примере в readme

class AddAvatarColumnsToUser < ActiveRecord::Migration
  def self.up
    change_table :users do |t|
      t.has_attached_file :avatar
    end
  end

  def self.down
    drop_attached_file :users, :avatar
  end
end