Ошибка Postgres при запуске seeds.exs (только в рабочей среде), когда поле имеет тип Ecto {:array, :string}

#elixir #phoenix-framework #ecto

#elixir #phoenix-framework #ecto

Вопрос:

Я определил в своей модели один файл типа Ecto {:array, :string}. Он нормально работает в разработке, но я получаю эту ошибку при попытке запустить seeds.exs только в рабочей среде:

 Ecto.ChangeError value ["images/specific/eventos/sixtyfive/1.jpg", "images/specific/eventos/sixtyfive/2.jpg", "images/specific/eventos/sixtyfive/3.jpg", "images/specific/eventos/sixtyfive/4.jpg", "images/specific/eventos/sixtyfive/5.jpg"] for `FabASA.Evento.imgPath` in `insert` does not match type :string
  

Нужно ли мне изменять тип в моих миграциях?

Комментарии:

1. Этот тип в вашей миграции отсутствует {:array, :string} ?

2. Похоже, что в вашей производственной базе данных поле является просто строкой… Вы проверяли это вручную с помощью psql или чего-то подобного?

3. @Dogbert. ДА. Как в моей модели, так и в миграции. Однажды у меня возникла проблема, и мне пришлось изменить тип миграции для собственного типа PostgreSQL (не типа Ecto). Итак, я пытаюсь выяснить, есть ли у кого-нибудь опыт работы с этим конкретным типом Ecto — типом PostgreSQL.

4. @fahrradflucht. Какая команда psql для просмотра этого при подключении к БД?

5. d tablename должно быть прочитано character varying(255)[] в поле. Скорее всего, это d evento .