雷克流产了!Mysql2::错误:重复的列名';slug';:改变表格`类别`

雷克流产了!Mysql2::错误:重复的列名';slug';:改变表格`类别`,mysql,ruby-on-rails,activerecord,Mysql,Ruby On Rails,Activerecord,最近,我在我的本地rails应用程序的两个模型上实现了friendly_id。我创建了两个迁移将\u slug\u添加到\u类别和将\u slug\u添加到\u服务。并完成了其余步骤,并使友好的\u idURL正常工作。然后,我将相同的迁移更改推送到生产服务器。然后在生产rails控制台中,我运行了Category.find_each(&:save)和Service.find_each(&:save),并让它在生产中运行 然后为了在本地机器上进行一些测试,我从生产环境中获取了dump.sql,通

最近,我在我的本地rails应用程序的两个模型上实现了
friendly_id
。我创建了两个迁移
将\u slug\u添加到\u类别
将\u slug\u添加到\u服务
。并完成了其余步骤,并使
友好的\u id
URL正常工作。然后,我将相同的迁移更改推送到生产服务器。然后在生产rails控制台中,我运行了
Category.find_each(&:save)
Service.find_each(&:save)
,并让它在生产中运行

然后为了在本地机器上进行一些测试,我从生产环境中获取了
dump.sql
,通过运行
rake db:drop
和创建
rake db:create
并运行
rake db:migrate
删除了本地机器上的现有数据库。然后我将
dump.sql
推送到本地数据库。然后,当我运行
rails s
时,我得到了
迁移挂起
错误。所以我继续运行,再次运行
rakedb:migrate
。然后我得到了

== 20170411073744 AddSlugToCategories: migrating ==============================
-- add_column(:categories, :slug, :string)
rake aborted!
StandardError: An error has occurred, all later migrations canceled:

Mysql2::Error: Duplicate column name 'slug': ALTER TABLE `categories` ADD `slug`  

我尝试过多次删除db并再次创建。但我总是遇到同样的问题。有人能告诉我如何解决这个问题吗?

要解决当前问题,您需要运行
ALTER TABLE categories DROP COLUMN slug
dbconsole
中,将来首先需要导入
dump.sql
,然后迁移
rake db:migrate

是的,我尝试了
rails g migration RemoveSlugFromCategories slug:string
,然后再次运行
rake db:migrate
。出现了相同的错误。命令是
ALTER TABLE categories
DROP COLUMN slug
?是否有rails方法可以做到这一点?是否每次从生产环境导入
dump.sql
时都必须这样做?它正在工作。但正如我所问的,我是否每次从生产环境导入
dump.sql
时都必须这样做?