(I'm merging this since I can't find any case where it hurts, it's actually not correct syntax at all, just we got away with it in the past when DBIC was more lax)
Hey, there's a test which is broken when trying to install this with the latest DBIC, fixed attached
__PACKAGE__->table("personality");
__PACKAGE__->add_columns( "user_id" => { data_type => 'integer' }, );
__PACKAGE__->set_primary_key("user_id");
-__PACKAGE__->has_one( 'user', 'DBSchema::Result::User', {'user_id' => 'foreign.id'}, );
+__PACKAGE__->has_one( 'user', 'DBSchema::Result::User', {'foreign.id' => 'self.user_id'}, );
1;