gpt4 book ai didi

postgresql - Phoenix Ecto Postgres 表未创建

转载 作者:行者123 更新时间:2023-11-29 12:28:22 24 4
gpt4 key购买 nike

喂,首先,我想让你知道我是 Phoenix Framework 和 Elixir 的新手。我正在学习教程,但遇到了奇怪的问题。我配置了连接,一切正常。但是迁移文件似乎没有被执行。我写了以下文件:

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 ecto.rollback
mix ecto.migrate

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

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

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com