> I've always interpreted that practice to mean to not depend on external objects in a migration.

Yeah, that's the main reason.

> Clearance::Tokens could go away or it could change such that type in use here is not sufficient for what we're storing. I think making it a public, first class object in the system makes that less likely to be the case though.

Another idea might be to promote `generate_confirmation_token` and `generate_remember_token` to public class methods on `Clearance::User` and use them in `user.reset_remember_token!` and other places consistently, including the migration.

Sounds like you have some ideas for tomorrow and whatever you want to go with is fine with me.