我使用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
是否有混合任务或类似工具一次更新相关数据库表,视图,控制器和模板?
如果没有,更改/更新这些文件的推荐流程是什么?
答案 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
函数,以反映新字段。