ruby-on-rails - 将 toptal/chewy gem 与 ankane/strong_migration gem 一起使用时发生冲突
问题描述
将ankane/strong_migration
gem 与toptal/chewy gem
.
两个 gem 都重写了 Active Support 的方法 migrate,导致我运行时 migrate 函数中的无限循环rake db:migrate
以下是错误消息:
/home/meowth/.rvm/gems/ruby-2.5.3/gems/chewy-5.1.0/lib/chewy/strategy.rb:70:in `wrap`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/chewy-5.1.0/lib/chewy.rb:201:in `strategy`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/chewy-5.1.0/lib/chewy/railtie.rb:32:in `migrate_with_chewy`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/strong_migrations-0.3.1/lib/strong_migrations/migration.rb:13:in `migrate`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/chewy-5.1.0/lib/chewy/railtie.rb:32:in `block in migrate_with_chewy`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/chewy-5.1.0/lib/chewy/strategy.rb:70:in `wrap`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/chewy-5.1.0/lib/chewy.rb:201:in `strategy`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/chewy-5.1.0/lib/chewy/railtie.rb:32:in `migrate_with_chewy`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/strong_migrations-0.3.1/lib/strong_migrations/migration.rb:13:in `migrate`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/chewy-5.1.0/lib/chewy/railtie.rb:32:in `block in migrate_with_chewy`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/chewy-5.1.0/lib/chewy/strategy.rb:70:in `wrap`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/chewy-5.1.0/lib/chewy.rb:201:in `strategy`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/chewy-5.1.0/lib/chewy/railtie.rb:32:in `migrate_with_chewy`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/strong_migrations-0.3.1/lib/strong_migrations/migration.rb:13:in `migrate`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/activerecord-4.2.10/lib/active_record/migration.rb:768:in `migrate`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/activerecord-4.2.10/lib/active_record/migration.rb:1023:in `block in execute_migration_in_transaction`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/activerecord-4.2.10/lib/active_record/migration.rb:1069:in `block in ddl_transaction`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract/transaction.rb:184:in `within_new_transaction`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/activerecord-4.2.10/lib/active_record/transactions.rb:220:in `transaction`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/activerecord-4.2.10/lib/active_record/migration.rb:1069:in `ddl_transaction`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/activerecord-4.2.10/lib/active_record/migration.rb:1022:in `execute_migration_in_transaction`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/activerecord-4.2.10/lib/active_record/migration.rb:984:in `block in migrate`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/activerecord-4.2.10/lib/active_record/migration.rb:980:in `each`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/activerecord-4.2.10/lib/active_record/migration.rb:980:in `migrate`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/chewy-5.1.0/lib/chewy/railtie.rb:32:in `block in migrate_with_chewy`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/chewy-5.1.0/lib/chewy/strategy.rb:70:in `wrap`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/chewy-5.1.0/lib/chewy.rb:201:in `strategy`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/chewy-5.1.0/lib/chewy/railtie.rb:32:in `migrate_with_chewy`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/activerecord-4.2.10/lib/active_record/migration.rb:823:in `up`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/activerecord-4.2.10/lib/active_record/migration.rb:801:in `migrate`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/activerecord-4.2.10/lib/active_record/tasks/database_tasks.rb:139:in `migrate`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/strong_migrations-0.3.1/lib/strong_migrations/database_tasks.rb:4:in `migrate`
/home/meowth/.rvm/gems/ruby-2.5.3/gems/activerecord-4.2.10/lib/active_record/railties/databases.rake:44:in `block (2 levels) in <top (required)>`
/home/meowth/.rvm/gems/ruby-2.5.3/bin/bundle:23:in `load`
/home/meowth/.rvm/gems/ruby-2.5.3/bin/bundle:23:in `<main>` Tasks: TOP
=> db:migrate (See full trace by running task with --trace)
如果有人解决了这个问题,请帮助我。谢谢!
解决方案
推荐阅读
- python - 如何生成表格并由';'限制 txt 文件(或 csv),其中包含为 pandas 数据帧的每一列定义的字符数
- python - 动画不显示使用 matplotlib 传递的参数
- css - CSS 边框动画适用于 Chrome、Firefox,但不适用于 Edge 15/IE 11
- r - 如何使用 ggplot2 更改图表大小
- java - 合并 HDFS 中小于 128MB 的压缩 lzo 文件
- javascript - 编写 Firefox 插件以打开页面上的链接
- php - 在 PDO PHP 脚本中使用相同的 POST 值两次 | mysql
- json - 尝试在 Spark 中展平 JSON 时出错
- symfony - 无法创建新的 Symfony 项目
- reactjs - 如何在不触发不必要的重新渲染的情况下将派生对象传递给另一个组件?