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看到我的答案了吗