migrating a column to foreign key and foreign table

I'm attempting to write a migration that adds a foreign key column to a table to replace an existing attribute (a string to an object). I'd like to add the column, convert the existing data into a new entry on the foreign table and then set the foreign key value.

I'm successfully able to add the column, but it doesn't seem like the objects mapped to the foreign table get created, as after the migration completes the foreign table is empty and the foreign key values are very large, seemingly random integers.

I've tried doing Object.new + Object.save and Object.create, but neither seems to work. I've also tried both of those inside of a transaction within the 'self.up' that's marked as ':requires_new'.

Any thoughts on what I might be doing wrong or how to debug this? Any links to examples?

Thanks.