Как удалить поле из модели Ecto

Я хочу удалить поле из существующей модели Ecto:

field :age, :integer

После прочтения документации я не уверен, что это лучший / простой способ сделать это (удалить (столбец))? ... Вы можете привести пример? Я пробовал:

def change do
    create table(:users) do
      remove :age
    end
end

и это не работает.


person Paulo Janeiro    schedule 10.09.2015    source источник


Ответы (1)


Вы хотите использовать таблицу alter / 2 вместо таблицы create.

def change do
  alter table(:users) do
    remove :age
  end
end

create/2 будет повышаться, если таблица уже существует.

person Gazler    schedule 10.09.2015
comment
Еще раз спасибо! Знаете ли вы, как получить доступ (как в руководстве по моделям экто фреймворка Phoenix): если мы войдем на наш сервер базы данных и подключимся к нашей базе данных hello_phoenix_dev, мы должны увидеть нашу таблицу пользователей? - person Paulo Janeiro; 10.09.2015
comment
Эта команда сделает это: echo "\dt" | psql -U postgres -W -h localhost hello_phoenix_dev Замените postgres своим именем пользователя postgres. - person Gazler; 10.09.2015
comment
Отлично! И команда, которая переводится в фактическую таблицу пользователей (которая появляется рядом и показывает нам содержимое / содержимое столбцов таблицы)? С твоей помощью я добиваюсь прогресса :) - person Paulo Janeiro; 11.09.2015