By looking at your code, I assume that you have these models in your 
application. Site, Country,Payment, SiteUserRole and Event. If that's true 
then you don't have to worry about that. The migration, that I shared 
before, will iterate through all these models and ID in every database 
table will be replaced with generated UUID.

On Monday, October 28, 2013 10:58:18 AM UTC+5, kingston.s wrote:
>
>  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 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/5aab11e6-af28-4abd-b1cf-5dfa1cc778c5%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to