Postgres comes with many default extensions and they have one for dealing with accent characters.
• • •
Dealing with Accents
You might have a need to remove accents from names or words from your application. Especially if you are trying to create a slug out of that name.
Postgres comes with so many default extensions that are turned off. And they have an extension that deals with accents called
Just log into your postgres console and type this query
> psql > select * from pg_available_extensions; ...
You will see a long table of available extensions.
As usual, reading the documentation is the best way to understanding how the extension works. In this example we want the
The Postgres documentation explains how it works.
Creating a migration
If I want to run a migration in postgres or Phoenix to turn this on, I would create the following migration.
defmodule Pomotv.Repo.Migrations.AddAccentExtension do use Ecto.Migration def change do execute """ CREATE EXTENSION unaccent; """ end def down do execute """ DROP EXTENSION unaccent; """ end end
In your migration: file when you want to perform database specific actions you need to use the
execute function as shown above.
As always make sure your
down function is able to undo, just in case you need to rollback.