我不知道为什么我不能将“Admin”列添加到我的用户表中。我在终端“rails g migration AddAdminToUsers admin:boolean”中运行,它在 db/migrate 中创建文件。当我运行 rake db:migrate 时,出现以下错误:
“PG::DuplicateColumn:错误:关系“users”的列“admin”已经存在”
在 schema.rb 文件中,我没有看到管理栏。当我运行 rake db:migrate:status 时,我可以看到“向用户添加管理员”的状态是“关闭”,而其他所有内容都是“启动”。我可以通过键入 rails db:migrate:reset 来解决这个问题,但随后我丢失了我的用户数据以及其他数据。
如何将管理列添加到我的用户表?
最佳答案
"PG::DuplicateColumn: ERROR: column "admin" of relation "users" already exists"
错误信息很清楚。您的 users
表中已有一个 admin
列。您必须先删除它,然后才能将 admin
列添加到您的 users
表中。
要删除已经存在的 admin
列,生成一个迁移:
rails g migration RemoveAdminFromUsers admin:boolean
然后运行迁移以从 users
中删除 admin
:
rake db:migrate
现在您可以再次添加它:
rails g migration AddAdminToUsers admin:boolean
关于ruby-on-rails - 为什么 rake 数据库 :migrate doesn't work when adding Admin to User?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32187422/