雷克流产了!Mysql2::错误:重复的列名';slug';:改变表格`类别`
最近,我在我的本地rails应用程序的两个模型上实现了雷克流产了!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,通
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
时都必须这样做?