3.1→3.2固有の問題とかじゃなく初歩的な話。
現象:
3.1でダンプしたsqlファイルを3.2でリストアした所、Redmineのログイン画面は表示されるがログインするとinternal error500を吐く。おえー
(普通の人はブラウザでエラー500見る前に解決するだろうから現象とは言いづらい)
結果:
migrate時にエラー表示されたデータベーステーブルを3つほど削除してしたら直った。
具体的内容:
過去2回のアップデートをしており自前の手順メモと同じ手順で行ったらだめだった。
とりあえずBitnamiRedmineの公式wikiを覗いたらデータベースを一旦削除して再度作成してリストアするように記されていた。自前のメモに書いてないし、昔はこんな記述なかったような気がする。
多分これだろうとおとなしく記載通りにやってみるが変わらず。なんでやねん。
仕方なく面倒で読み飛ばしていたターミナルのメッセージを一つづつ読んでみると
ruby bin/rake db:migrate RAILS_ENV=production
する際におもいっきりエラーが出ていた。
「Mysql2::Error: Table 'roles_managed_roles' ほげほげじゅげむじゅげむ.....」
とエラーのテーブル名が出ているので、別タブでmysqlに入りテーブルの中身を確認する。
mysql > use bitnami_redmine
でbitnami_redmineに入り、
mysql> select * from roles_managed_roles;
で確認するとテーブルは空だったので
mysql > drop table roles_managed_roles;
で、テーブルを削除する
元のタブでmigrateを再度行うと、今度は別のテーブルでエラーが出た。
同じようにテーブルの中身を確認して削除する作業をエラーが出なくなるまで繰り返す。
最終的に削除したテーブルが再度作成され、完了となる。
あとはいつも通りプラグイン向けに
bundle install --without development test postgresql sqlite --no-deployment
bundle install --without development test postgresql sqlite --deployment
ruby bin/rake redmine:plugins RAILS_ENV=production
を叩いて、(プラグイン用のテーブルでも同様のエラーが出たのでこちらのテーブルも再構築した)
ruby bin/rake tmp:cache:clear
ruby bin/rake tmp:sessions:clear
して終了
正常にアクセスできた。めでたしめでたし。