Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Model_stubbing | 55 | 15 years ago | mit | Ruby | ||||||
Replacement for ActiveRecord fixtures using an extremely flexible ruby-based approach. | ||||||||||
Named_seeds | 44 | 9 | 7 years ago | 12 | December 22, 2016 | 1 | mit | Ruby | ||
:id::seedling::seedling: Replace ActiveRecord Fixtures With #{YourFactories} | ||||||||||
Activerecord_constraints | 26 | 11 years ago | 2 | May 19, 2012 | gpl-3.0 | Ruby | ||||
Create database constraints in Rails migrations and handle the exceptions they produce | ||||||||||
Running_man | 24 | 13 | 1 | 11 years ago | 9 | March 07, 2013 | 2 | mit | Ruby | |
Activerecord Migrations | 13 | 3 years ago | 11 | June 07, 2020 | Ruby | |||||
A gem to simplify activerecord migrations in non-rails projects. | ||||||||||
Iron_fixture_extractor | 12 | 1 | 5 years ago | 5 | August 05, 2013 | 2 | mit | Ruby | ||
When object factories don't work because your data is too complex and creating manual fixtures is cumbersome and brittle: Iron Fixture Extractor (for ActiveRecord/Rails) | ||||||||||
Transactional Factories | 12 | 13 years ago | mit | Ruby | ||||||
Using nested-transactions to initialize test data programmatically. | ||||||||||
Gold Record | 9 | 14 years ago | mit | Ruby | ||||||
ActiveRecord extension for unobtrusive binary UUIDs | ||||||||||
Mongoid Fixture_set | 8 | 7 | 7 years ago | 11 | June 23, 2016 | 5 | mit | Ruby | ||
Fixtures for Mongoid | ||||||||||
Ar_multi_threaded_transactional_tests | 7 | 1 | 3 years ago | 6 | December 27, 2020 | mit | Ruby | |||
Execute multithreaded code while still using transactional fixtures by synchronizing db access to a single connection |
Unobtrusive binary UUIDs for ActiveRecord.
GoldRecord is an extension for ActiveRecord that implements unobtrusive binary UUIDs in MySQL.
GoldRecord supports SchemaDumper by not declaring the id
column a PRIMARY KEY
. The odds of a random UUID collision are documented here.
Uses space-efficient 16-byte binary representation for UUIDs.
Works with associations, migrations and ActiveRecord::SchemaDumper.
Transparently converts to hex-encoded UUIDs in #to_param.
Transparently handles binary, hex-encoded and URL-safe Base64 UUIDs in #find.
class Blog < ActiveRecord::Base acts_as_gold_record has_many :posts end class Post < ActiveRecord::Base acts_as_gold_record end
class LargeHadron < ActiveRecord::Base acts_as_gold_record set_primary_key :lottery_number validates_uniqueness_of :lottery_number, :on => :create end
# In test/helper.rb or spec_helper.rb: require 'active_record/fixtures' Fixtures.send :include, GoldRecord::Fixtures
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 columns 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
[sudo] gem install gold-record
Clone/copy to vendor/plugins/gold_record
.