如何在 Phoenix Framework 中更新 phoenix.gen.html 创建的文件?
How do I update files created by phoenix.gen.html in the Phoenix Framework?
我使用 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
,数据库 table 已与视图、控制器和模板一起创建。
我想通过更改一个字段并添加另一个字段来更新我的用户模型,如下所示。
schema "users" do
field :name, :string
field :email, :string
field :bio, :string
field :likes_turnips, :boolean
field :turnips, :integer
timestamps
end
是否有混合任务或类似任务一次性更新相关数据库table、视图、控制器和模板?
如果没有,change/update 这些文件的推荐流程是什么?
您将需要像您所做的那样对您的方案进行更新。但是,您还需要生成一个迁移,以便您的数据库 table 反映这一点:
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
函数以反映新字段。
我使用 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
,数据库 table 已与视图、控制器和模板一起创建。
我想通过更改一个字段并添加另一个字段来更新我的用户模型,如下所示。
schema "users" do
field :name, :string
field :email, :string
field :bio, :string
field :likes_turnips, :boolean
field :turnips, :integer
timestamps
end
是否有混合任务或类似任务一次性更新相关数据库table、视图、控制器和模板?
如果没有,change/update 这些文件的推荐流程是什么?
您将需要像您所做的那样对您的方案进行更新。但是,您还需要生成一个迁移,以便您的数据库 table 反映这一点:
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
函数以反映新字段。