You might need to write a migration or rake task for this purpose.
Migration may look like this. class MigrateData < ActiveRecord::Migration def change get_all_models.each do |model| model.where('').find_each do |model_instance| model_instance.update_attributes id: UUIDTools::UUID.random_create.to_s end end end def get_all_models Module.constants.select do |constant_name| constant = eval constant_name if not constant.nil? and constant.is_a? Class and constant.superclass == ActiveRecord::Base constant end end endend This migration will iterate over all the models in your app and generate UUID for each single instance. On Friday, October 25, 2013 6:17:55 PM UTC+5, kingston.s wrote: > > Hi all, > > I am using rails 3.1 and ruby 1.9.3,Now i want to use uuid concept in > rails 3 for existing data > > so i did like :- > > create_table :posts, :id => false do |t| > t.string :uuid, :limit => 36, :primary => true > end > > ActiveRecord::Base.class_eval do > > # old rails versions > set_primary_key 'uuid' > > before_create :generate_uuid > def generate_uuid > self.id = UUIDTools::UUID.random_create.to_s > end > end > > > This is working for new data,now i want to migrate existing data with > relation.for uuid they are using datatype as string,in postgresql the > data type used for primary_key and foreign key is integer ,so if i am > trying to change foreign key integer to string it is throwing error. > > Could you please tell me some example,how to do this. > > kingston.s > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-talk@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/8a84ed31-8566-496f-9168-01f05755ae13%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.