Elixir Can';菲尼克斯不会产生移民
我已经开始学习phoenix framework,在尝试创建迁移时遇到了一些问题,下面是我的模式:Elixir Can';菲尼克斯不会产生移民,elixir,phoenix-framework,Elixir,Phoenix Framework,我已经开始学习phoenix framework,在尝试创建迁移时遇到了一些问题,下面是我的模式: defmodule Lclp.User do use Ecto.Schema import Ecto.Changeset alias Lclp.User schema "users" do field :email, :string field :name, :string field :password, :string, virtual: true
defmodule Lclp.User do
use Ecto.Schema
import Ecto.Changeset
alias Lclp.User
schema "users" do
field :email, :string
field :name, :string
field :password, :string, virtual: true
field :password_hash, :string
field :username, :string
timestamps()
end
当我运行迁移生成器时,此输出类似以下内容:
defmodule Lclp.Repo.Migrations.UserAdd do
use Ecto.Migration
def change do
end
end
当更改函数应为以下内容时,该函数为空:
def change do
create table(:users) do
add :name, :string
add :username, :string
add :email, :string
add :password, :string
add :password_hash, :string
timestamps()
end
end
我的用户模式位于repo.ex的主文件夹中,您可以在此处看到:
有人知道为什么生成器生成一个空迁移吗?您将想看看
exto.gen.migration
不会查看您的代码来尝试为您构建实际的迁移。它只生成scaffold文件。您将需要查看它exto.gen.migration
不会查看您的代码来尝试为您构建实际的迁移。它只生成scaffold文件。您使用什么命令生成迁移?另外,由于您的:password
字段是虚拟的,因此不应将其包括在迁移中。我使用的是mix-exto.gen.migration-create\u-user
。我将删除:密码,谢谢。我想您会想改为查看exto.gen.migration
不会尝试基于代码创建迁移。它只创建迁移文件。有道理,我会试试。@JustinWood我想你应该把这个建议作为答案。许多未来的访问者可能会弄乱生成器。您使用什么命令生成迁移?另外,由于您的:password
字段是虚拟的,因此不应将其包括在迁移中。我使用的是mix-exto.gen.migration-create\u-user
。我将删除:密码,谢谢。我想您会想改为查看exto.gen.migration
不会尝试基于代码创建迁移。它只创建迁移文件。有道理,我会试试。@JustinWood我想你应该把这个建议作为答案。许多未来的游客可能会把发电机弄乱。