redmineにpluginを入れてみて,やっぱりこれ不完全 or 合わない など様々な理由で使わなくなるプラグインは出てきます.
その中で,自分があるプラグインを一旦消して,また入れなおそうとしたときに,「データベース作成に失敗したよ!そのテーブルは存在してるよ!」とか色々言われて苦労したので,その時の作業内容を簡単に書く.
redmine のプラグインをアンインストールするには,コマンドからできる.
% ruby /script/plugin remove {name_of_the_plugin}
{name_of_the_plugin} must match the plugin name in /vendor/plugins.
ということで,REDMINE_ROOT/vender/plugins/の下にある削除したいプラグインの名前を指定してあげればOK.
または,
% rake db:migrate_plugins NAME=plugin_name VERSION=0 RAILS_ENV=production
を行う.この"VERSION=0"がポイントかな.プラグインは,アップデートなどする度にこの参照カウントみたいなバージョン番号がインクリメントされてるっぽい.
上記を行ってからフォルダの削除.
MySQLの場合,schema_migrations というテーブルでバージョンを管理しているので自分は対象となるプラグインの名前をもつメンバを削除した.
何回かアップデートしていれば,その数ぶん,Versionの番号_plugin_name となったデータがあるのでそれらも削除しておくこと.
削除しておくテーブルは,プラグインフォルダのdb/migrate のしたに,001_create_hogehoge.rb というようなファイルがあり,その中でクラスをチェックすることと.create_tableのメソッドで実行しているはず.
もし,ファイルがこのフォルダの下に2つあれば,テーブルは他にもあるということ.残っているとそれだけは更新されないので気をつけること.
これでできた。エラーになる大体の原因はすでにデータベースがあるから。(経験上ね).
上記の方法ではSQLite3 を使用している場合、こちらのデータを消すことはできない。。
データベースから削除する方法は。。。と思って調べてみた.
% sqlite3 db\redmine.db
sqlite> select * from plugin_schema_info;
......... <= 該当するPluginの名称と数字があるはず(数字はmigrateの回数?/Version番号?)
たぶん、番号はテーブル数かな。
と思ってたけど,違った。。
sqlite> .mode line
で見ると分かりますが、バージョンの値のようです。でもテーブルの数な気がする。。(しつこい),分からないけど気にしない.
これで、該当のプラグインの名前を把握します。
まず、最初にテーブルを削除してから,Deleteで行を削除しないとダメなようです。
sqlite> .table
でテーブル一覧を見ることができます。
テーブル名から削除したいプラグインに当てはまるものを判断して削除したのですが,もっとうまい方法(該当するプラグインがもつテーブルを知る方法)はないのかなぁ。
→プラグインフォルダにあるdbフォルダの中をみて、それに一致するテーブルを消したらうまくいきました。
DROP TABLE テーブル名;
sqlite3 redmine/db/redmine.db
sqlite> drop table mmmm;
sqlite> drop table sssssss;
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
DELETE FROM [データベース名 .] テーブル名 [WHERE 評価式]
sqlite3 のコマンドで
sqlite> .header on
とするとカラム名も表示されるようになる。
delete from tablename where columnname='';
で消したりした。
schema_migrations のテーブルの中にも消したいプラグインのカラムがあったので
これも削除.
これでどうにかゴミログも削除できたはず.
霊感はギリシアの円形の競技場で源を発して、四角形のスーパーコピーウブロシリーズは全く新しい方法は古典の気質が現れて、そして四角形で円形の浅くて浮ついているテーマの巧みな構想・考案を制約して、透明ではないだ黒色の時計の文字盤は別に金属の数字でいつも飾って、時計シリーズ。1モデルのブランドが1度のきわめて高い流行する時計を知っていることを弁別するので、白黒の交互にの色は組み合わせて、円形の鋼製車体の大胆な構造と心の皿の近代的な感設計を強調しています。
鏡を表して欠点とかききずがないべきで、透明でつやがあります;3針の設置が正しくて、針と針は、鏡と時計の文字盤の間を表して正しい安全クリアランスがあるべきです;時計の文字盤とポインターのクラッド層の平滑度が良くて、他の色と重なり合った色模様がなくて、時計の文字盤の目盛りの線あるいは夜光点が完全です;頭とを殻の間に表しておよそ0.1−0.3mmの隙間があります。