I have been struggling for about 2-hours trying to work out migrating acts_as_tree to acts_as_nested_set. In the archives Krishna Dole said, "If you have multiple trees in your table, it is a little more complicated. You first need to give each tree scope (add a tree_id column) and then run the above method on a member of each tree." Not completely understanding that statement, I set out to implement it in a migration. Here is my result which appears to work. Please comment if you see anything that needs fixing. class ConvertCategoriesToNestedSet < ActiveRecord::Migration def self.up add_column :categories, :lft, :integer add_column :categories, :rgt, :integer add_column :categories, :root_id, :integer # Convert existing tree to nested set with scope Category.renumber_all Category.roots.each do |r| r.all_children.each do |c| c.update_attribute(:root_id, r.id) end r.update_attribute(:root_id, r.id) end end def self.down remove_column :categories, :lft remove_column :categories, :rgt remove_column :categories, :root_id end end ~Jeremy Maziarz jeremy dot maziarz at gmail dot com