I'm trying to change a Devise User model's id type to a uuid.
My migration looks like this:
class ChangeUserIdTypeToUuid < ActiveRecord::Migration[5.2]
def up
change_column :users, :id, :uuid
end
def down
change_column :users, :id, :integer
end
end
But when I run the migration I get an error:
== 20180909205634 ChangeUserIdTypeToUuid: migrating ===========================
-- change_column(:users, :id, :uuid)
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PG::DatatypeMismatch: ERROR: column "id" cannot be cast automatically to type uuid
HINT: You might need to specify "USING id::uuid".
: ALTER TABLE "users" ALTER COLUMN "id" TYPE uuid
There's a hint in there but I don't know what it's suggesting I do. It's not this:
change_column :users, :id, id::uuid
Why is the migration failing? What is the hint suggesting? How do I change the ID type to UUID?