RailsのモデルIDにUUIDを使う(翻訳)

概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Choose UUIDs for model IDs in Rails 原文公開日: 2017/11/26 著者: Andy Croll RailsのモデルIDにUUIDを使う(翻訳) UUID(universally unique identifier)は、コンピュータシステムで情報の識別に用いられる128ビットの数字です。GUID(globally unique identifier)と呼ばれることもあります。 PostgreSQLにはネイティブのカラム型があります。PostgreSQLの型についてはRailsガイド(英語)をご覧ください。 Railsのデフォルトであるカウントアップする整数idの代わりに、次のPostgreSQLのUUIDサポートを使います。 Ruby on Rails 5.0以降、ActiveRecordモデルでUUIDをidとして利用できる機能があります。 PostgreSQL拡張を有効にする bin/rails g migration enable_extension_for_uuidを実行してEnableExtensionForUuidモデルを以下のようにします。 class EnableExtensionForUuid < ActiveRecord::Migration[5.1] def change enable_extension ‘pgcrypto’ unless extension_enabled?(‘pgcrypto’) end end config/initializers/generators.rbを作成する Rails.application.config.generators do |g| g.orm :active_record, primary_key_type: :uuid end これによって主キーで使われるデフォルトのカラム型が変更され、マイグレーションジェネレータで新規テーブル作成時にid: :uuidが設定されるようになります。 … Continue reading RailsのモデルIDにUUIDを使う(翻訳)