change create_table :users, id: :uuid do |t| end end u class CreateBoxes < ActiveRecord::Migration def change create_table :boxes do |t| t.references :user, type: :uuid end end end
ALTER TABLE users ALTER COLUMN id DROP NOT NULL; u ALTER TABLE users ALTER COLUMN id DROP DEFAULT; u ALTER TABLE users ALTER COLUMN id TYPE uuid USING (uuid_generate_v4()); u ALTER TABLE users ALTER COLUMN id SET DEFAULT uuid_generate_v4(); u ALTER TABLE users ADD PRIMARY KEY (id);
UPDATE boxes T SET user_uuid = (SELECT uuid FROM users WHERE id = T.user_id); u ALTER TABLE boxes ALTER COLUMN user_id TYPE uuid USING user_uuid; u ALTER TABLE boxes DROP COLUMN user_uuid;
ALTER TABLE boxes ADD COLUMN user_uuid uuid; u UPDATE boxes T SET user_uuid = (SELECT uuid FROM users WHERE id = T.user_id); u ALTER TABLE boxes ALTER COLUMN user_id TYPE uuid USING user_uuid; u ALTER TABLE boxes DROP COLUMN user_uuid; u ALTER TABLE boxes ADD FOREIGN KEY (user_id) REFERENCES users(id);