ecto无法在postgresql中创建表

时间:2017-01-25 02:03:43

标签: postgresql migration phoenix-framework ecto

我正在使用凤凰框架并继续编写凤凰图书 该项目是使用mix创建的。根据需要更新了数据库用户和密码的相关配置。 输入以下命令并定义模型 用户模型 - 遵循书中的示例:

defmodule Rumbl.User do

    use Rumbl.Web, :model
    schema "users" do
        field :name, :string
        field :username, :string
        field :password, :string, virtual: true
        field :password_hash, :string
        timestamps
    end
end

以下步骤:

  1. mix ecto.create

  2. mix ecto.gen.migration create_user

    生成xxxx_create_user.exs文件

  3. mix ecto.migrate

    生成schema_migrations的更新,但不在PostgreSQL中创建用户表。

  4. 好奇我在这里做错了什么。

1 个答案:

答案 0 :(得分:0)

运行mix ecto.gen.migration create_user命令后,您将获得一个不对数据库执行任何操作的迁移文件。

您需要在生成的迁移文件中自己create表:

  def change do
    create table(:users) do
      add :name, :string
      add :username, :string
      add :password_hash, :string

      timestamps()
    end
  end

之后,运行mix ecto.migration应该根据需要修改数据库架构。