Using PostgreSQL to Generate Slugs

Slugs are useful for generating friendly identifiers for resources. For example, Yelp will generate the slug kimball-house-decatur for the restaurant Kimball House in Decatur, GA. By having a friendly slug in the URL, it makes it easier for me to find the Yelp listing when I search the web for this delicious restaurant.

We decided to use PostgreSQL to create a slugify function that we can easily use. Here’s what the code looks like.

Keep in mind you may have to deal with some uniqueness constraints, so use this code as a starting point if you decide to create slugs in the DB. Specifically, we had to create a SEQUENCE for duplicate slugs and append it to the slug. This worked in our case but might not work if you expect to have a ton of conflicts.

Keep sluggin’!