我使用 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
一起创建了数据库表以及 View 、 Controller 和模板。
我想通过更改一个字段并添加另一个字段来创建如下所示的内容来更新我的用户模型。
schema "users" do
field :name, :string
field :email, :string
field :bio, :string
field :likes_turnips, :boolean
field :turnips, :integer
timestamps
end
是否有混合任务或类似任务可以一次性更新相关数据库表、 View 、 Controller 和模板?
如果没有,更改/更新这些文件的推荐流程是什么?
最佳答案
您需要像之前一样更新您的方案。但是,您还需要生成迁移,以便您的数据库表反射(reflect)这一点:
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
函数,以反射(reflect)新字段。
关于elixir - 如何更新 Phoenix 框架中 phoenix.gen.html 创建的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33393808/