我在我的sqlite中插入了一个错误类型为“stringimage”的列。
如何将列类型更改为字符串?
我尝试了change_column :users, :uid, :string
和
def up
change_table :users do |t|
t.change :uid, :stringimage
end
end
def down
change_table :users do |t|
t.change :uid, :string
end
end
但它不起作用。 我尝试了很多东西,但没有一个可行,可能是因为我使用的是rails 5.
答案 0 :(得分:1)
您需要在迁移中编写以下两个定义:
def up
change_column :my_table, :my_column, :string
end
def down
change_column :my_table, :my_column, :stringimage
end
答案 1 :(得分:0)
你可以试试这个:
change_column(table_name, column_name, type, options):
使用与add_column相同的参数将列更改为其他类型。
答案 2 :(得分:0)
请注意,change_column是不可逆转的迁移。如果您尝试回滚,它将导致错误。要防止这种情况,请在迁移中修改常用的更改方法,以使用两个单独的向上和向下方法,如下所示:
class ChangeUsersUidType < ActiveRecord::Migration
def up
change_column :users, :uid, :string
end
def down
change_column :users, :uid, :stringimage
end
end
如果您喜欢这个答案,可以在本文中阅读更多内容:https://kolosek.com/rails-change-database-column。