clear-code / redmine_full_text_search

Full text search for Redmine
MIT License
61 stars 24 forks source link

Install Error:NoMethodError: undefined method `[]’ for #<ActiveRecord::Migration:0x00055d644c05528> #85

Closed asyahana closed 4 years ago

asyahana commented 4 years ago

Redmine FullTextSearchをインストールしようとしたのですが、 インストールが上手く行かず、行き詰まっております。 (FullTextSearchインストール前提で、1からRedmineを構築しています) Ruby やRailsのバージョンが未対応なのかを調べてみたのですが、そのような情報を見つける事が出来ませんでした。 回避策や他に必要となるアプリケーション等ございましたら、お教えいただけますと幸いです。

[OS] CentOS Linux release 7.7.1908 [Redmine version] 3.4.13.stable.19711 [Ruby version] 2.5.3-p105 (2018-10-18) [x86_64-linux] [Rails version] 4.2.11.1 [Database] MySQL(Ver.14.14 Distrib 5.7.29) / MariaDB(5.5.64 – MariaDB Server) MySQL, MariaDBの両方で試しましたが、いずれも上手く行きませんでした。 [Mroonga version] 10.0.1

エラー発生時のLinux端末ログ

[root@mysql-redmine ~]# service httpd restart
Redirecting to /bin/systemctl restart httpd.service
[root@mysql-redmine ~]# cd /var/lib/redmine
[root@mysql-redmine redmine]# git clone https://github.com/okkez/redmine_full_text_search.git \plugins/full_text_search
Cloning into 'plugins/full_text_search'...
remote: Enumerating objects: 167, done.
remote: Counting objects: 100% (167/167), done.
remote: Compressing objects: 100% (120/120), done.
remote: Total 4722 (delta 79), reused 103 (delta 41), pack-reused 4555
Receiving objects: 100% (4722/4722), 2.38 MiB | 638.00 KiB/s, done.
Resolving deltas: 100% (2678/2678), done.
[root@mysql-redmine redmine]# bundle install
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and
installing your bundle as root will break this application for all non-root
users on this machine.
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x64-mingw32, x86-mswin32. To add those platforms to the bundle, run ’bundle lock --add-platform x86-mingw32 x64-mingw32 x86-mswin32’.
Fetching gem metadata from https://rubygems.org/.............
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Using rake 13.0.1
Using i18n 0.7.0
Using minitest 5.14.0
Using thread_safe 0.3.6
Using tzinfo 1.2.7
Using activesupport 4.2.11.1
Using builder 3.2.4
Using erubis 2.7.0
Using mini_portile2 2.3.0
Using nokogiri 1.8.5
Using rails-deprecated_sanitizer 1.0.3
Using rails-dom-testing 1.0.9
Using crass 1.0.6
Using loofah 2.5.0
Using rails-html-sanitizer 1.3.0
Using actionview 4.2.11.1
Using rack 1.6.13
Using rack-test 0.6.3
Using actionpack 4.2.11.1
Using globalid 0.4.2
Using activejob 4.2.11.1
Using mime-types-data 3.2019.1009
Using mime-types 3.3.1
Using mail 2.6.6
Using actionmailer 4.2.11.1
Using actionpack-xml_parser 1.0.2
Using activemodel 4.2.11.1
Using arel 6.0.4
Using activerecord 4.2.11.1
Using public_suffix 4.0.4
Using addressable 2.7.0
Fetching io-like 0.3.1
Installing io-like 0.3.1
Fetching archive-zip 0.12.0
Installing archive-zip 0.12.0
Using bundler 1.17.0
Fetching csv 3.1.2
Installing csv 3.1.2
Fetching chupa-text 1.3.1
Installing chupa-text 1.3.1
Using coderay 1.1.2
Using concurrent-ruby 1.1.6
Using css_parser 1.7.1
Fetching gqtp 1.0.7
Installing gqtp 1.0.7
Fetching json 2.3.0
Installing json 2.3.0 with native extensions
Fetching groonga-command 1.4.7
Installing groonga-command 1.4.7
Fetching json-stream 0.2.1
Installing json-stream 0.2.1
Fetching groonga-command-parser 1.1.4
Installing groonga-command-parser 1.1.4
Fetching hashie 4.1.0
Installing hashie 4.1.0
Fetching groonga-client 0.6.2
Installing groonga-client 0.6.2
Using htmlentities 4.3.4
Using thor 1.0.1
Using railties 4.2.11.1
Using jquery-rails 3.1.5
Using mimemagic 0.3.4
Using mysql2 0.4.10
Using net-ldap 0.12.1
Using protected_attributes 1.1.4
Using ruby-openid 2.9.2
Using rack-openid 1.4.2
Using sprockets 3.7.2
Using sprockets-rails 3.2.1
Using rails 4.2.11.1
Using rbpdf-font 1.19.1
Using rbpdf 1.19.8
Using redcarpet 3.4.0
Using request_store 1.0.5
Using rmagick 2.16.0
Using roadie 3.2.2
Using roadie-rails 1.1.1
Fetching strings-ansi 0.1.0
Installing strings-ansi 0.1.0
Fetching tty-cursor 0.7.1
Installing tty-cursor 0.7.1
Fetching tty-screen 0.7.1
Installing tty-screen 0.7.1
Fetching unicode-display_width 1.7.0
Installing unicode-display_width 1.7.0
Fetching tty-progressbar 0.17.0
Installing tty-progressbar 0.17.0
Bundle complete! 36 Gemfile dependencies, 71 gems now installed.
Gems in the groups development and test were not installed.
Bundled gems are installed into ’./vendor/bundle’
[root@mysql-redmine redmine]# bundle exec rake redmine:plugins:migrate RAILS_ENV=production
Migrating full_text_search (Full Text Search plugin)...
-- [](4.2)
-- [](4.2)
rake aborted!
NoMethodError: undefined method ’[]' for #<ActiveRecord::Migration:0x000055d644c01528>
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:664:in ’block in method_missing'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:634:in ’block in say_with_time'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:634:in ’say_with_time'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:654:in ’method_missing'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:416:in ’method_missing'
/var/lib/redmine/plugins/full_text_search/db/migrate/20170630063557_enable_pgroonga.rb:1:in ’<top (required)>'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activesupport-4.2.11.1/lib/active_support/dependencies.rb:274:in ’require'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activesupport-4.2.11.1/lib/active_support/dependencies.rb:274:in ’block in require'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activesupport-4.2.11.1/lib/active_support/dependencies.rb:240:in ’load_dependency'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activesupport-4.2.11.1/lib/active_support/dependencies.rb:274:in ’require'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:777:in ’load_migration'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:773:in ’migration'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:768:in ’disable_ddl_transaction'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:1076:in ’use_transaction?'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:986:in ’rescue in block in migrate'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:983:in ’block in migrate'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:980:in ’each'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:980:in ’migrate'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:823:in ’up'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:801:in ’migrate'
/var/lib/redmine/lib/redmine/plugin.rb:481:in ’migrate_plugin'
/var/lib/redmine/lib/redmine/plugin.rb:453:in ’migrate'
/var/lib/redmine/lib/redmine/plugin.rb:467:in ’block in migrate'
/var/lib/redmine/lib/redmine/plugin.rb:466:in ’each'
/var/lib/redmine/lib/redmine/plugin.rb:466:in ’migrate'
/var/lib/redmine/lib/tasks/redmine.rake:135:in ’block (3 levels) in <top (required)>'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/exe/rake:27:in ’<top (required)>'
/usr/local/bin/bundle:23:in ’load'
/usr/local/bin/bundle:23:in ’<main>'

Caused by:
NoMethodError: undefined method ’[]' for #<ActiveRecord::Migration:0x000055d644c01528>
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:664:in ’block in method_missing'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:634:in ’block in say_with_time'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:634:in ’say_with_time'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:654:in ’method_missing'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:416:in ’method_missing'
/var/lib/redmine/plugins/full_text_search/db/migrate/20170630063557_enable_pgroonga.rb:1:in ’<top (required)>'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activesupport-4.2.11.1/lib/active_support/dependencies.rb:274:in ’require'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activesupport-4.2.11.1/lib/active_support/dependencies.rb:274:in ’block in require'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activesupport-4.2.11.1/lib/active_support/dependencies.rb:240:in ’load_dependency'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activesupport-4.2.11.1/lib/active_support/dependencies.rb:274:in ’require'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:777:in ’load_migration'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:773:in ’migration'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:768:in ’disable_ddl_transaction'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:1076:in ’use_transaction?'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:1068:in ’ddl_transaction'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:1022:in ’execute_migration_in_transaction'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:984:in ’block in migrate'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:980:in ’each'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:980:in ’migrate'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:823:in ’up'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.11.1/lib/active_record/migration.rb:801:in ’migrate'
/var/lib/redmine/lib/redmine/plugin.rb:481:in ’migrate_plugin'
/var/lib/redmine/lib/redmine/plugin.rb:453:in ’migrate'
/var/lib/redmine/lib/redmine/plugin.rb:467:in ’block in migrate'
/var/lib/redmine/lib/redmine/plugin.rb:466:in ’each'
/var/lib/redmine/lib/redmine/plugin.rb:466:in ’migrate'
/var/lib/redmine/lib/tasks/redmine.rake:135:in ’block (3 levels) in <top (required)>'
/var/lib/redmine/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/exe/rake:27:in ’<top (required)>'
/usr/local/bin/bundle:23:in ’load'
/usr/local/bin/bundle:23:in ’<main>'
Tasks: TOP => redmine:plugins:migrate
(See full trace by running task with --trace)
[root@mysql-redmine redmine]# 
asyahana commented 4 years ago

「`」が入っているとコードと見なされますので、上記エラー発生時のLinux端末ログにおいては「’(全角のダッシュ)」に置き換えています。

kou commented 4 years ago

最新版ではRedmine 3系をサポートしていません。 Redmine 4にアップグレードするか、 https://github.com/clear-code/redmine_full_text_search/tree/v1.0.2 を使ってください。

(オススメはRedmine 4にアップグレードです。)

asyahana commented 4 years ago

お世話になっております。 頂いたリンクからv1.0.2を使用しましたが、Redmine自体が開かず、Apacheのエラーログを確認すると「Could not spawn process method ’queue_with_priority' for FullTextSearch::ExtractTextJob:Class(NoMethodError)」とありました。

試しにv1.0.1を適用すると無事使用可能となったのですが、今度は検索結果の並び順の部分で表記がおかしくなってしまいます。 (下図参照。インストール後にインデックス作成等が必要であれば、そちらは行っておりませんので、お手数ですがその手順等ご教示いただけますと幸いです) capture

Redmine4.xへのアップグレードは、使用中プラグインの未対応等の理由により難しい状況です。 できる事なら3.4.xにおいて使う事が出来ればと存じます。

何か回避策、あるいは設定の修正はありますでしょうか。 お忙しいところ恐縮ですが、どうぞよろしくお願い致します。

kou commented 4 years ago

Redmine 3系はメンテナンスが終わっているのでこれから新しくなにかすることはありません。 IEを使っていますか?であれば、 https://github.com/clear-code/redmine_full_text_search/commit/cd4a35d38e176ff130baeb918ef2933216a195fb で直るかもしれません。

Redmine4.xへのアップグレードは、使用中プラグインの未対応等の理由により難しい状況です。 できる事なら3.4.xにおいて使う事が出来ればと存じます。

繰り返しになりますが、Redmine 3系のメンテナンスは終わっているのでそこに未来はありません。

まず、それぞれのプラグインに動かないことをフィードバックしてください。

もし開発が停滞していてRedmine 4系に対応してもらえないということなら、クリアコードで対応パッチを開発元に提供したり、開発を引き取ってメンテナンスする有償サポートを提供しています。

島津製作所さんに提供した例: https://speakerdeck.com/akahane92/redminequan-wen-jian-suo-sisutemufalseshi-ji?slide=38

もし、Redmine 3.4で動いたとしても、その後3.4を維持し続けるのはかえってメンテナンスコストがかかると思います。(だれも直してくれないし、助けてもくれないし、最新版での便利機能も使えなくて不便なままだしなど。)

asyahana commented 4 years ago

お世話になっております。 4.xへのアップグレードの方が良いとの事で承知致しました。 4.xにおける動作確認が取れた事と、社内Redmineのアップグレードの方針を通すため、一旦当IssueはCloseさせて頂きます。 ありがとうございます。