[Rails] Re: Migrate postgresql database to uuid
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:
-- 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 end endThis 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+unsubscribe@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/21fe94ec-e8fc-43bf-b5c6-a91abce8069e%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home