最近,我在本地 rails应用程序的两个模型上实现了friendly_id
。我创建了两个迁移add_slug_to_categories
和add_slug_to_services
。并完成了步骤并让friendly_id
网址正常工作。然后我将相同的迁移更改推送到我的生产服务器。然后在生产rails控制台中,我运行了Category.find_each(&:save)
和Service.find_each(&:save)
,并让它也在生产。
然后,为了在我的本地计算机上进行某些测试,我从生产中获取了dump.sql
,并通过运行rake db:drop
并由rake db:create
创建并将rake db:migrate
删除现有数据库并运行{ {1}}。然后我将dump.sql
推送到本地数据库。然后当我运行rails s
时出现migrations pending
错误。所以我继续前进并再次跑rake db: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并再次创建多次。但我不断遇到同样的问题。有人可以告诉我该如何解决这个问题?
答案 0 :(得分:1)
要解决当前问题,您需要在ALTER TABLE categories DROP COLUMN slug;
中运行dbconsole
,以后首先需要导入dump.sql
,然后迁移rake db:migrate