support custom name of primary_key