啜饮,
首先,我想让你们知道,我对凤凰城和长生不老药很熟悉。我一直在努力学习教程,但我遇到了奇怪的问题。我配置了连接,一切正常。但是迁移文件似乎没有被执行。我写了以下文件:

defmodule Hangman.Repo.Migrations.CreateWords do
  use Ecto.Migration

  def change do
    create table(:words) do
      add :content, :string

      timestamps
    end
  end
end

这只是一个只有一个字段的简单表。但是数据库中没有创建表,但exto认为一切正常:
18:22:28.669 [info]  Already up

最佳答案

这意味着已经执行了迁移。数据库中应该有一个名为schema_migrations的表,该表将对每个迁移的引用存储为表中带有时间戳(这是迁移文件名的前缀)的行。
执行迁移后,不回滚就无法再次运行它。只有在将更改推到上游(即没有其他人依赖它)之前,才应该这样做。

mix ecto.rollback
mix ecto.migrate

如果上述方法不起作用,可以使用执行完全重置-这将清除数据库中的任何数据:
mix do ecto.drop, ecto.create, ecto.migrate

关于postgresql - Phoenix Ecto Postgres表未创建,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33153874/

10-16 17:22