in what case would this be None? Is this still needed after running the migration script? It seems a little dangerous to do this -- maybe raise an exception instead. Isn't public_id set up during payment setup?