I  have model called user. 
 
user.rb 
 
class User < ActiveRecord::Base 
 
  has_many :sites,:through=>:site_user_roles 
  belongs_to :country 
  has_many :payments 
  has_and_belongs_to_many :events 
 
end 
 
like above i am having lots of association,now i want to migrate all the 
relation to uuid.

On Monday, October 28, 2013 10:59:04 AM UTC+5:30, Kashif Umair Liaqat wrote:
>
> I could not understand that what do you mean by single instance migration 
> with relation. Can you please elaborate more?
>
> On Monday, October 28, 2013 9:36:41 AM UTC+5, kingston.s wrote:
>>
>> For single instance migration we could do like this,what to be done if i 
>> want to migrate single instance with the relation?
>>
>>
>> On Sunday, October 27, 2013 9:57:57 AM UTC+5:30, Kashif Umair Liaqat 
>> wrote:
>>>
>>> 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 [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/2fd2c01d-138b-4140-9971-f100d26c0179%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to