Ecto Changeset: modify column type from :string to {:array, :string}

I’m assuming the migration isn’t working because it’s not able to convert the current values in the column to the new type.

You might want to do this in multiple migrations:

  • A migration to create a new column with type {:array, :string} and copy all the old column values to the new column as a list of strings.
  • A migration to delete the old column.
  • A migration to rename the new column to be the name of the deleted column.