Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql Phoenix Exto Postgres表未创建_Postgresql_Elixir_Phoenix Framework - Fatal编程技术网

Postgresql Phoenix Exto Postgres表未创建

Postgresql Phoenix Exto Postgres表未创建,postgresql,elixir,phoenix-framework,Postgresql,Elixir,Phoenix Framework,副食品, 首先,我想让你知道我对凤凰框架和长生不老药还不熟悉。我一直在努力学习教程,但我遇到了一个奇怪的问题。我配置了连接,一切正常。但是迁移文件似乎没有被执行。我写了以下文件: defmodule Hangman.Repo.Migrations.CreateWords do use Ecto.Migration def change do create table(:words) do add :content, :string timestamps

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

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

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

      timestamps
    end
  end
end
这只是一个带有一个字段的简单表。但数据库中没有创建表,但Ecto认为一切正常:

18:22:28.669 [info]  Already up

这意味着已经执行了迁移。您的数据库中应该有一个名为
schema_migrations
的表,该表将每个迁移的引用存储为带有时间戳(即迁移文件名的前缀)的表中的一行

执行迁移后,如果不回滚,则无法再次运行迁移。只有在将更改推到上游之前,才应该这样做(即,没有其他人依赖它)

如果上述操作不起作用,您可以使用进行完全重置-这将清除数据库中的所有数据:

mix do ecto.drop, ecto.create, ecto.migrate

这意味着已经执行了迁移。您的数据库中应该有一个名为
schema_migrations
的表,该表将每个迁移的引用存储为带有时间戳(即迁移文件名的前缀)的表中的一行

执行迁移后,如果不回滚,则无法再次运行迁移。只有在将更改推到上游之前,才应该这样做(即,没有其他人依赖它)

如果上述操作不起作用,您可以使用进行完全重置-这将清除数据库中的所有数据:

mix do ecto.drop, ecto.create, ecto.migrate

删除数据库并再次创建它


您可以删除数据库并重新创建它


你可以走了

这看起来是一个非常古老的问题,但只是为了记录在案
我认为
mix-exto.reset
是您正在寻找的唯一命令。

这看起来像是一个非常老的问题,但只是为了记录在案
我认为,
mix-exto.reset
是您要寻找的唯一命令。

。。当我尝试“星外”回滚时,它说已经关闭了,当我尝试外移时,它说已经up@Haito迁移文件的路径是什么?@Haito要删除该文件并使用
mix-exto.gen.migration create_words
再次创建该文件,请填充生成的文件并重试。它现在起作用@Haito您应该始终使用mix任务生成迁移-这将在用于确定迁移是否已运行的时间戳。您手动创建的迁移不会包含在迁移列表中,因为时间戳不存在。。当我尝试“星外”回滚时,它说已经关闭了,当我尝试外移时,它说已经up@Haito迁移文件的路径是什么?@Haito要删除该文件并使用
mix-exto.gen.migration create_words
再次创建该文件,请填充生成的文件并重试。它现在起作用@Haito您应该始终使用mix任务生成迁移-这将在用于确定迁移是否已运行的时间戳。您手动创建的迁移不会包含在迁移列表中,因为时间戳不存在。问题修复了我做错的是手动创建文件而不是od生成文件的问题修复了我做错的是手动创建文件而不是od生成文件的问题
mix ecto.migrate