【问题标题】:How to do Rails migration involving Paperclip如何进行涉及 Paperclip 的 Rails 迁移
【发布时间】:2011-10-19 19:41:25
【问题描述】:

人们如何编写涉及Paperclip 的Rails 迁移?我觉得我可能遗漏了一些明显的东西,因为我现在已经编写了自己的迁移助手黑客,这使得它更容易并且还负责进行必要的文件系统更改。当然,在部署到生产环境之前,您应该在开发(和暂存)环境中测试运行这些类型的迁移。

Paperclip migration rename, add and remove helpers
Paperclip change path migration helper(不是真正的数据库迁移,但我认为它非常适合)

有没有更好的解决方案或最佳做法?有些人似乎创建了 rake 任务等,感觉很麻烦。

【问题讨论】:

    标签: ruby-on-rails paperclip rails-migrations


    【解决方案1】:

    gem 中包含了为此的生成器:

    导轨 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
    

    【讨论】:

    • 谢谢,我应该更清楚一点,我主要是指涉及现有回形针列的迁移以及需要文件系统更改等的重命名和路径更改。
    • 啊,那么看看这个问题:stackoverflow.com/questions/2708115/…
    • 好的,这或多或少就像我在我的助手中所做的那样。猜猜这就是人们当时的做法。
    猜你喜欢
    • 2011-12-19
    • 2020-05-08
    • 2015-06-09
    • 1970-01-01
    • 2019-06-17
    • 1970-01-01
    • 2014-05-02
    • 2021-03-02
    • 1970-01-01
    相关资源
    最近更新 更多