如何更新Phoenix Framework中phoenix.gen.html创建的文件?

时间:2015-10-28 14:30:27

标签: elixir phoenix-framework ecto

我使用phoenix.gen.html使用models/user.ex生成的架构创建了一个简单的用户模型,如下所示。

    schema "users" do
      field :name, :string
      field :email, :string
      field :bio, :string
      field :dislikes_turnips, :boolean

      timestamps
  end

models/user.ex一起,数据库表已与视图,控制器和模板一起创建。

我想通过更改一个字段并添加另一个字段来更新我的用户模型,如下所示。

schema "users" do
    field :name, :string
    field :email, :string
    field :bio, :string
    field :likes_turnips, :boolean
    field :turnips, :integer

    timestamps
  end

是否有混合任务或类似工具一次更新相关数据库表,视图,控制器和模板?

如果没有,更改/更新这些文件的推荐流程是什么?

1 个答案:

答案 0 :(得分:3)

您需要像现在一样对计划进行更新。但是,您还需要生成迁移,以便数据库表反映出这一点:

mix ecto.gen.migration change_turnips_on_users

您应该在priv/repo/migrations中添加一个需要修改的新文件(您可以阅读有关迁移的更多信息in the docs

defmodule MyApp.Repo.Migrations.ChangeTurnipsOnUsers do
  use Ecto.Migration

  def change do
    alter table(:users) do
      add :turnips, :integer
    end

    rename table(:users), :dislikes_turnips, to: :likes_turnips
  end
end

您还需要更新以下内容:

  • form.html.eex为您的用户
  • 为您的用户模型生成的changeset/2函数,以反映新字段。