为什么在将管理员添加到用户时 rake db:migrate 不起作用?

Why rake db:migrate doesn't work when adding Admin to User?

我不知道为什么我无法将列 "Admin" 添加到我的用户 table。我在终端 "rails g migration AddAdminToUsers admin:boolean" 中 运行 并在 db/migrate 中创建文件。当我 运行 rake db:migrate 我得到以下错误:

关系 "users" 的

"PG::DuplicateColumn: ERROR: column "admin" 已经存在"

在 schema.rb 文件中,我没有看到管理栏。当我 运行 rake db:migrate:status 时,我可以看到 "Add admin to users" 的状态是 "down",而其他一切都是 "up"。我可以通过键入 rails db:migrate:reset 来解决问题,但随后我丢失了我的用户数据以及其他数据。

如何将管理栏添加到我的用户 table?

"PG::DuplicateColumn: ERROR: column "admin" of relation "users" already exists"

错误信息很清楚。您的 users table 中已有 admin 列。您必须先删除它,然后才能将 admin 列添加到 users table.

要删除已经存在的 admin 列,生成一个迁移:

rails g migration RemoveAdminFromUsers admin:boolean

然后 运行 从 users 中删除 admin 的迁移:

rake db:migrate

现在您可以重新添加它了:

rails g migration AddAdminToUsers admin:boolean