
Security News
Astral Launches pyx: A Python-Native Package Registry
Astral unveils pyx, a Python-native package registry in beta, designed to speed installs, enhance security, and integrate deeply with uv.
= GoldRecord
Unobtrusive binary UUIDs for ActiveRecord.
== DESCRIPTION
GoldRecord is an extension for ActiveRecord that implements unobtrusive binary UUIDs[http://en.wikipedia.org/wiki/Universally_Unique_Identifier] in MySQL.
== FEATURES
GoldRecord supports SchemaDumper by not declaring the id column a PRIMARY KEY. The odds of a random UUID collision are documented here[http://en.wikipedia.org/wiki/Universally_Unique_Identifier#Random_UUID_probability_of_duplicates].
== SYNOPSIS
class Blog < ActiveRecord::Base acts_as_gold_record has_many :posts end
class Post < ActiveRecord::Base acts_as_gold_record end
=== Or, for the exceptionally paranoid:
class LargeHadron < ActiveRecord::Base acts_as_gold_record set_primary_key :lottery_number validates_uniqueness_of :lottery_number, :on => :create end
== FIXTURES
require 'active_record/fixtures' Fixtures.send :include, GoldRecord::Fixtures
== MIGRATIONS
class MakeGoldRecords < ActiveRecord::Migration TABLES = [:labels, :record_stores] ASSOCIATIONS = [ [:artists, :label_id, :id], [:labels_record_stores, :label_id, false], [:labels_record_stores, :record_store_id, false], [:artists_record_stores, :record_store_id, false], ]
def self.up
# Change each int(11) id column to binary(16).
# This preserves the column’s original value as a right-padded 16-byte string.
TABLES.each do |table|
change_integer_primary_key_to_uuid(table)
add_index table, :id
end
# Change association columns to binary(16).
ASSOCIATIONS.each do |table, column, primary_key|
change_integer_to_uuid(table, column, primary_key)
end
end
# Down migration designed to be run immediately after an up migration
# in the event of some failure. Running this after generating any UUIDs
# will produce unpredictable results.
def self.down
# Change each binary(16) id column to int(11).
# MySQL casts the string value to an integer.
TABLES.each do |table|
remove_index table, :id
change_uuid_to_integer_primary_key(table)
end
# Change association columns to int(11).
ASSOCIATIONS.each do |table, column|
change_uuid_to_integer(table, column, primary_key)
end
end
end
== INSTALL
=== As a gem:
[sudo] gem install gold-record
=== As a Rails plugin:
Clone/copy to vendor/plugins/gold_record.
FAQs
Unknown package
We found that gold-record demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Astral unveils pyx, a Python-native package registry in beta, designed to speed installs, enhance security, and integrate deeply with uv.
Security News
The Latio podcast explores how static and runtime reachability help teams prioritize exploitable vulnerabilities and streamline AppSec workflows.
Security News
The latest Opengrep releases add Apex scanning, precision rule tuning, and performance gains for open source static code analysis.