为什么rake db:migrate在向用户添加Admin时不起作用?

时间:2015-08-24 16:40:20

标签: ruby-on-rails postgresql migration rails-migrations

我不知道为什么我无法添加专栏" Admin"到我的用户表。我在终端中运行" rails g migration AddAdminToUsers admin:boolean"它在db / migrate中创建文件。当我运行rake db:migrate时,我收到以下错误:

" PG :: DuplicateColumn:ERROR:column" admin"关系"用户"已存在"

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

如何将管理列添加到我的用户表?

1 个答案:

答案 0 :(得分:1)

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

错误信息非常清楚。您的admin表格中已有users列。您必须先删除该列,然后才能将admin列添加到users表格。

要删除现有的admin列,请生成迁移:

rails g migration RemoveAdminFromUsers admin:boolean

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

rake db:migrate

现在您可以重新添加它:

rails g migration AddAdminToUsers admin:boolean