将时间戳添加到现有表怎么做?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (9)

我需要将时间戳(created_at updated_at)添加到现有表中。我尝试了下面的代码,但它没有奏效。我也试过了我在网上找到的其他解决方案,但他们也不管用。

class AddTimestampsToUser < ActiveRecord::Migration
    def change_table
      add_timestamps(:users)
    end
end

我该怎么做?

提问于
用户回答回答于

时间戳助手仅在create_table可用。可以通过手动指定列类型来添加这些列:

class AddTimestampsToUser < ActiveRecord::Migration
  def change_table
    add_column :users, :created_at, :datetime, null: false
    add_column :users, :updated_at, :datetime, null: false
  end
end

用户回答回答于

这样:

class AddTimestampsToUser < ActiveRecord::Migration
    def self.up # Or `def up` in 3.1
        change_table :users do |t|
            t.timestamps
        end
    end
    def self.down # Or `def down` in 3.1
        remove_column :users, :created_at
        remove_column :users, :updated_at
    end
end

如果你是3.1版,也可以使用change

class AddTimestampsToUser < ActiveRecord::Migration
    def change
        change_table(:users) { |t| t.timestamps }
    end
end

扫码关注云+社区