Ruby on rails 4 如何在rails中将数据库列从integer迁移到bigint?

Ruby on rails 4 如何在rails中将数据库列从integer迁移到bigint?,ruby-on-rails-4,activerecord,Ruby On Rails 4,Activerecord,根据我的发现,我现在正在使用这个,但它不起作用 def change change_column :users, :twitter_id, :integer, :limit => 8 end 我刚刚遇到了同样的问题。以下几点对我很有用: def up change_column :my_table, :my_column, :bigint end class ChangeCarNumberOfKeysToSmallInt < ActiveRecord::Migration

根据我的发现,我现在正在使用这个,但它不起作用

def change
 change_column :users, :twitter_id, :integer, :limit => 8
end

我刚刚遇到了同样的问题。以下几点对我很有用:

def up 
  change_column :my_table, :my_column, :bigint
end
class ChangeCarNumberOfKeysToSmallInt < ActiveRecord::Migration[5.2]
  def up
    change_column :cars, :number_of_keys, :tinyint
  end

  def down
    change_column :cars, :number_of_keys, :int
  end
end

对于查找不同于
:bigint
的数据类型的任何人,您也可以使用
:tinyint
:smallint
:mediumint
,根据

另外,对于
railsdb:rollback
,一定要使用
up
down
;这就是我的工作原理:

def up 
  change_column :my_table, :my_column, :bigint
end
class ChangeCarNumberOfKeysToSmallInt < ActiveRecord::Migration[5.2]
  def up
    change_column :cars, :number_of_keys, :tinyint
  end

  def down
    change_column :cars, :number_of_keys, :int
  end
end
class ChangeCarnumberOfKeysSmalloint
replicate of?这并不能回答问题。我问的是如何设置数据类型,而不是如何更改主键。这些问题的答案集中在主键上,而不是数据类型。对不起,“重复”可能太强了。我想知道复制他们将字符串
“bigint”
作为类型放入的模式是否会达到您想要的效果。我尝试了,但不幸的是,它没有起作用。我在rake db:migrateStill上遇到一个错误,如果有人对如何通过更改实现这一点有答案,我会将其标记为正确答案。做我所做的事情解决了问题,但这并不是问题的答案,因为它不会帮助任何在游戏后期遇到这个问题的人,当他们不能从数据库中删除一个表时,这只是改变了模式,还是会更新表中的每一行?也就是说,它会锁上我的桌子吗?这样做并没有锁上我的桌子。老实说,我没有检查是否每一行都被更改,或者是否只是模式被更改。它工作起来天衣无缝,所以我没有必要再深入研究了。它确实锁定了桌子。我敢肯定每一行都在变化。在测试迁移之前,我添加了几千万条记录,在迁移过程中,我无法插入到表中,这需要几个小时。对于那些寻找零停机时间的人,我找到了这个答案:你能帮我解决小整数问题吗?@ForamThakral看到我的答案了吗