Я пытаюсь изменить тип идентификатора модели Devise User на uuid.
Моя миграция выглядит так:
class ChangeUserIdTypeToUuid < ActiveRecord::Migration[5.2]
def up
change_column :users, :id, :uuid
end
def down
change_column :users, :id, :integer
end
end
Но когда я запускаю миграцию, я получаю ошибку:
== 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
Там есть подсказка, но я не знаю, что она предлагает мне сделать.Это не так:
change_column :users, :id, id::uuid
Почему не удается выполнить миграцию?Что подсказывает подсказка?Как изменить тип идентификатора на UUID?