ラベル Plugin の投稿を表示しています。 すべての投稿を表示
ラベル Plugin の投稿を表示しています。 すべての投稿を表示

2009年10月21日水曜日

Redmine:Plugin migrateでエラー:その3

環境:redmine 0.8.5 / sqlite3 3.6.7 / OpenSolaris 06/09

そろそろけりをつけたい。

前回の最後のエラーは、「SQLException: table "schedule_entries" already exists: 」であったが、これは、当該テーブルがすでに作成されえいるから発生している。その原因は元となったPlugin「redmine_schedules」が同じテーブルを使用しており作成済みになっていたからであった。

そこで、一旦古い方のPluginを削除して、再度インストールする。

sqlite3 ~/redmine/db/redmine.db <<EOD
delete from plugin_schema_info where plugin_name='redmine_schedules';
drop table schedule_entries;
drop table availability_entries;
drop table schedule_closed_entries;
drop table schedule_defaults;
.quit
EOD

rm -r ~/redmine/public/plugin_assets/redmine_schedules


念のために、新しい方も削除しておく。

sqlite3 ~/redmine/db/redmine.db <<EOD
delete from plugin_schema_info where plugin_name='redmine_goyello_schedules';
drop table schedule_entries;
drop table availability_entries;
drop table schedule_closed_entries;
drop table schedule_defaults;
drop table scheduled_issues;
.quit
EOD


やっと終わるのか???

rake db:migrate_plugins RAILS_ENV=production
----------
(in /export/home/webadm/redmine-0.8.5)
Migrating engines...
Migrating actionwebservice...
Migrating acts_as_activity_provider...
..........
== 4 CreateScheduledIssues: migrated (0.1081s) ================================
..........


はあーーー、何とか成功。長かった。

Redmine:Plugin migrateでエラー:その2

環境:redmine 0.8.5 / sqlite3 3.6.7 / OpenSolaris 06/09

rakeではデバッグオプションがないため、オプション付きにしたものを$HOME/binに用意して実行した。


cd
mkdir bin
cd bin
cp /var/ruby/1.8/gem_home/bin/rake ./
vi ./rake
----------
#!/usr/ruby/1.8/bin/ruby -d <= 先頭にオプションを指定
----------


すると、以下のような感じになったがまだよくわからず。

Exception `Errno::EEXIST' at /usr/ruby/1.8/lib/ruby/1.8/fileutils.rb:243 - File exists - /export/home/webadm/redmine-0.8.5/public/plugin_assets/redmine_hudson/images
Exception `MissingSourceFile' at /usr/ruby/1.8/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:31 - no such file to load -- holidays
Exception `Errno::EEXIST' at /usr/ruby/1.8/lib/ruby/1.8/fileutils.rb:243 - File exists - /export/home/webadm/redmine-0.8.5/public/plugin_assets/redmine_schedules/javascripts
Exception `Errno::EEXIST' at /usr/ruby/1.8/lib/ruby/1.8/fileutils.rb:243 - File exists - /export/home/webadm/redmine-0.8.5/public/plugin_assets/redmine_schedules/stylesheets
Exception `TypeError' at /export/home/webadm/redmine-0.8.5/vendor/plugins/gloc-1.1.0/lib/gloc.rb:191 - can't convert Hash into String
Exception `TypeError' at /export/home/webadm/redmine-0.8.5/vendor/rails/activesupport/lib/active_support/dependencies.rb:506 - can't convert Hash into String
Exception `TypeError' at /export/home/webadm/redmine-0.8.5/vendor/rails/activesupport/lib/active_support/dependencies.rb:513 - can't convert Hash into String
rake aborted!
can't convert Hash into String


しかたないので、gloc.rb を編集して情報出力するようにする。

cp -p redmine/vendor/plugins/gloc-1.1.0/lib/gloc.rb ~/ <= オリジナルの退避
vi redmine/vendor/plugins/gloc-1.1.0/lib/gloc.rb
----------
_verbose_msg {"Reading file #{filename} [charset: #{file_charset} --> #{dest_charset}]"} <= どうやったらこれが出力されるか??
print "Reading file #{filename} [charset: #{file_charset} --> #{dest_charset}]" <= これを追加
----------


実行してみると。以下の場所が分かった。

Reading file /export/home/webadm/redmine-0.8.5/vendor/plugins/redmine_hudson/lang/de.yml [charset: utf-8 --> utf-8]Reading file /export/home/webadm/redmine-0.8.5/vendor/plugins/redmine_hudson/lang/ja.yml [charset: utf-8 --> utf-8]Reading file /export/home/webadm/redmine-0.8.5/vendor/plugins/redmine_goyello_schedules/lang/en.yml [charset: utf-8 --> utf-8]Reading file /export/home/webadm/redmine-0.8.5/vendor/plugins/redmine_goyello_schedules/lang/nl.yml [charset: utf-8 --> utf-8]Reading file /export/home/webadm/redmine-0.8.5/vendor/plugins/redmine_goyello_schedules/lang/es.yml [charset: utf-8 --> utf-8]Reading file /export/home/webadm/redmine-0.8.5/vendor/plugins/redmine_goyello_schedules/lang/pt-br.yml [charset: utf-8 --> utf-8]Reading file /export/home/webadmException `TypeError' at /export/home/webadm/redmine-0.8.5/vendor/plugins/gloc-1.1.0/lib/gloc.rb:191 - can't convert Hash into String
Exception `TypeError' at /export/home/webadm/redmine-0.8.5/vendor/rails/activesupport/lib/active_support/dependencies.rb:506 - can't convert Hash into String
Exception `TypeError' at /export/home/webadm/redmine-0.8.5/vendor/rails/activesupport/lib/active_support/dependencies.rb:513 - can't convert Hash into String
rake aborted!
can't convert Hash into String

(See full trace by running task with --trace)
/redmine-0.8.5/vendor/plugins/redmine_goyello_schedules/lang/it.yml [charset: utf-8 --> utf-8]Reading file /export/home/webadm/redmine-0.8.5/vendor/plugins/redmine_goyello_schedules/lang/pl.yml [charset: utf-8 --> utf-8]


この、最後の pl.yml が問題で、plがどこの国かここ調べたら、ポーランドで。pl.ymlはポーランド語用のLocaleファイルなのだが、形式が間違っていた。(config/locale/pl.yml の形式)

 正しい形式:
head -2 redmine/vendor/plugins/redmine_goyello_schedules/lang/en.yml
----------
label_bulk_schedules_index: Bulk schedule
label_schedules_my_index: My schedule
----------

誤り形式:
head -2 redmine/vendor/plugins/redmine_goyello_schedules/lang/pl.yml
----------
pl:
label_schedules_my_index: Moj harmonogram
----------


これを修正して、migrateを実行すると、「"?dzony vs. harmo"...」
pl.yml がUTF-8でないのかな???? この lang/pl.yml と config/locale/pl.yml を比較してみる。

ls -l vendor/plugins/redmine_goyello_schedules/config/locales/pl.yml
-rw-r--r-- 1 webadm staff 3744 2009-10-21 13:39 vendor/plugins/redmine_goyello_schedules/config/locales/pl.yml
webadm@ext-zone:~/redmine$ ls -l vendor/plugins/redmine_goyello_schedules/lang/pl.yml
-rw-r--r-- 1 webadm staff 2420 2009-10-21 18:56 vendor/plugins/redmine_goyello_schedules/lang/pl.yml


どうやらファイルが不正らしいので、コピーして1行目だけを削除して作り直す。
しかしまたまたエラー

Migrating actionwebservice...
Migrating acts_as_activity_provider...
Migrating acts_as_attachable...
Migrating acts_as_customizable...
Migrating acts_as_event...
Migrating acts_as_list...
Migrating acts_as_searchable...
Migrating acts_as_tree...
Migrating acts_as_versioned...
Migrating acts_as_watchable...
Migrating classic_pagination...
Migrating coderay-0.7.6.227...
Migrating gloc-1.1.0...
Migrating gravatar...
Migrating redmine_estimations...
Migrating redmine_goyello_schedules...
== 1 CreateScheduleEntry: migrating ===========================================
-- create_table(:schedule_entries)
rake aborted!
SQLite3::SQLException: table "schedule_entries" already exists: CREATE TABLE "schedule_entries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "user_id" integer DEFAULT 0 NOT NULL, "project_id" integer DEFAULT 0 NOT NULL, "date" date NOT NULL, "hours" float NOT NULL)

(See full trace by running task with --trace)


その3に続く。

Redmine:Plugin migrateでエラー

環境:redmine 0.8.5 / sqlite3 3.6.7 / OpenSolaris 06/09

新しいPluginを入れて、migrateしたら、以下のエラー。

SOURCE::http://github.com/GOYELLO/redmine-schedules-plugin AS-IS 20091015

rake db:migrate_plugins RAILS_ENV=production
(in /export/home/webadm/redmine-0.8.5)
rake aborted!
can't convert Hash into String

(See full trace by running task with --trace)


そこで、--trace してみると、

/export/home/webadm/redmine-0.8.5/vendor/plugins/gloc-1.1.0/lib/gloc.rb:190:in `iconv'
/export/home/webadm/redmine-0.8.5/vendor/plugins/gloc-1.1.0/lib/gloc.rb:190:in `load_localized_strings'
/export/home/webadm/redmine-0.8.5/vendor/plugins/gloc-1.1.0/lib/gloc.rb:189:in `each'
/export/home/webadm/redmine-0.8.5/vendor/plugins/gloc-1.1.0/lib/gloc.rb:189:in `load_localized_strings'
/export/home/webadm/redmine-0.8.5/vendor/plugins/gloc-1.1.0/lib/gloc.rb:188:in `open'
/export/home/webadm/redmine-0.8.5/vendor/plugins/gloc-1.1.0/lib/gloc.rb:188:in `load_localized_strings'
/export/home/webadm/redmine-0.8.5/vendor/plugins/gloc-1.1.0/lib/gloc.rb:175:in `each'
/export/home/webadm/redmine-0.8.5/vendor/plugins/gloc-1.1.0/lib/gloc.rb:175:in `load_localized_strings'
/export/home/webadm/redmine-0.8.5/config/initializers/30-redmine.rb:4
/export/home/webadm/redmine-0.8.5/vendor/rails/activesupport/lib/active_support/dependencies.rb:503:in `load'
/export/home/webadm/redmine-0.8.5/vendor/rails/activesupport/lib/active_support/dependencies.rb:503:in `load'
/export/home/webadm/redmine-0.8.5/vendor/rails/activesupport/lib/active_support/dependencies.rb:355:in `new_constants_in'
/export/home/webadm/redmine-0.8.5/vendor/rails/activesupport/lib/active_support/dependencies.rb:503:in `load'
/export/home/webadm/redmine-0.8.5/vendor/rails/railties/lib/initializer.rb:484:in `load_application_initializers'
/export/home/webadm/redmine-0.8.5/vendor/rails/railties/lib/initializer.rb:483:in `each'
/export/home/webadm/redmine-0.8.5/vendor/rails/railties/lib/initializer.rb:483:in `load_application_initializers'
/export/home/webadm/redmine-0.8.5/vendor/rails/railties/lib/initializer.rb:149:in `process'
/export/home/webadm/redmine-0.8.5/vendor/rails/railties/lib/initializer.rb:97:in `send'
/export/home/webadm/redmine-0.8.5/vendor/rails/railties/lib/initializer.rb:97:in `run'
/export/home/webadm/redmine-0.8.5/config/environment.rb:20
/usr/ruby/1.8/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/usr/ruby/1.8/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:31:in `require'
/export/home/webadm/redmine-0.8.5/vendor/rails/activesupport/lib/active_support/dependencies.rb:510:in `require'
/export/home/webadm/redmine-0.8.5/vendor/rails/activesupport/lib/active_support/dependencies.rb:355:in `new_constants_in'
/export/home/webadm/redmine-0.8.5/vendor/rails/activesupport/lib/active_support/dependencies.rb:510:in `require'
/export/home/webadm/redmine-0.8.5/vendor/rails/railties/lib/tasks/misc.rake:3
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:636:in `call'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:636:in `execute'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:631:in `each'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain'
/usr/ruby/1.8/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:607:in `invoke_prerequisites'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:604:in `each'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:604:in `invoke_prerequisites'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:596:in `invoke_with_call_chain'
/usr/ruby/1.8/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:2001:in `run'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/var/ruby/1.8/gem_home/gems/rake-0.8.7/bin/rake:31
/var/ruby/1.8/gem_home/bin/rake:19:in `load'
/var/ruby/1.8/gem_home/bin/rake:19

どうも、Localeらしいのだが詳細がわからず、、、その2に続く。

Redmine:Plugin Uninstallの仕方

環境:Redmine 0.8.5 / OpenSolaris 06/09

将来のバージョンでは基本機能としてPluginのUninstallが入るようだが、現状では手動設定となる。今一分からなかったが、試行錯誤の結果で以下のようにした。

1)Plugin用DBの削除
「 redmine/vendor/plugin/プラグイン/db/migrate/xxxx」を見て、作成したテーブルを発見し、以下のようにsqlite3で削除。
***バックアップのためにDBのファイルをコピーしておくこと

sqlite3 redmine/db/redmine.db
sqlite> drop table mmmm;
sqlite> drop table sssssss;
.........
sqlite> .quit


2)Plugin用の履歴を削除
sqlite3にて以下のようにする。

sqlite3 redmine/db/redmine.db
sqlite> select * from plugin_schema_info;
......... <= 該当するPluginの名称と数字があるはず(数字はmigrateの回数?/Version番号?)
sqlite> delete from plugin_schema_info where plugin_name='xxxxxx';
sqlite> .quit


3)Web用ファイルの削除
以下のディレクトリから対象のものを削除

cd redmine/public/plugin_assets
ls
........ <= 該当するPlugin名のディレクトリがあるはず
rm -r ./xxxxxx


4)Plugin本体の削除
 単純に削除する。

cd redmine/vendor/plugin/
rm -r xxxxx


5)Redmineの再起動
Passenger経由なのでApacheを再起動

これでPLuginが消えているようだ。
参考にした所:rake db:migrate_pluginsの取り消し方 <= 自作のPluginの場合なのでファイル構成がちょっと違うようだ

Redmine:Plugin:Schedule

環境:Redmine 0.8.5 / OpenSolaris 06/09

redmine-schedules-pluginからダウンロードして、PluginをInstall
**前もって「gem install holidays」してHolidaysを入れておく必要あり。
ここのブログにも書いてあるが、結構苦労してしまった。

1)名称の問題
 単にGITから取得すると「bradbeattie-redmine-schedules-plugin-15edcc6」となるので、名称を「redmine-schedules-plugin」と変更すると、エラーが発生。ログを見ると「redmine_schedules」でないとだめとのこと。途中がアンスコになっているし、、、

2)Localeの問題
 日本語の文字列用ファイルがないので、メニューやリンクが「label_my_schedule」などのようになってしまう。
 cp redmine_schedules/lang/en.yml redmine_schedules/lang/ja.yml

とすれば、英語の正しいラベルになる。日本語にしたい人は冒頭の筆者が作成したファイルを使用すればよさそう。

3)権限の問題
 ロールの設定で使う、使わないを設定しないとレポートなどが使用できない。
MyScheduleは見えて入力できたので、これでいいのかと思ったら、、、

おまけ:インストールを通してRedmineの勘所や問題点、TIPSなどが分かってきたので、別のページにまとめる。