2013年01月11日

Redmineアップデート時のデータベース読み込みエラー対処

以前、Redmine2.1.0 にアップデートした際に出たエラーと対処法をメモ。

■MySQL のバージョンがGemのバージョンと一致しないと怒られる。

MySQLのライブラリのバージョンが一致しないと怒られたので以下からダウンロードして、
http://dev.mysql.com/downloads/connector/c/

ruby/bin の下にDLLを格納。

webrick で起動して立ち上がることを確認。

■bundle exec thin コマンドで thin を利用しようとするとエラー

thin コマンドでRedmineを起動しようとするとエラーになるのでRedmine のディレクトリ以下に Gemfile.local を作成し、以下を記入。

# Gemfile.local
gem "thin"


---------------
でも、daemons がないと怒られたのでこれもいれる。(自分は、Redmineのバージョンごとにgem の格納先を最近は分けてるので以下のようなオプションを使用しています)

% gem install -i vendor\bundle\ruby\1.9.1 daemons


これでようやく起動した。

■ MySQLのバックアップデータをインポートしようとしたらエラー。

以下、MySQLからのバックアップで出たエラー。下に貼り付ける。

詳細なエラーはきちんと見てないが、
( `taggable_id` , `taggable_type` , `context` )の合計バイト値が1000を超えてるのが原因っぽい。
下記リンクからみると、3倍の値をかけた値が1000を超えては困るらしいので、255 を100に変更したらうまく行った。


"MySQL Bugs: #6604: mysql Error: 1071 (Specified key was too long; max key length is 1000 bytes)" - http://bugs.mysql.com/bug.php?id=6604
Error

SQL query:

-- --------------------------------------------------------
--
-- テーブルの構造 `taggings`
--
CREATE TABLE IF NOT EXISTS `taggings` (
`id` int( 11 ) NOT NULL AUTO_INCREMENT ,
`tag_id` int( 11 ) DEFAULT NULL ,
`taggable_id` int( 11 ) DEFAULT NULL ,
`taggable_type` varchar( 255 ) DEFAULT NULL ,
`created_at` datetime DEFAULT NULL ,
`tagger_id` int( 11 ) DEFAULT NULL ,
`tagger_type` varchar( 255 ) DEFAULT NULL ,
`context` varchar( 255 ) DEFAULT NULL ,
PRIMARY KEY ( `id` ) ,
KEY `index_taggings_on_tag_id` ( `tag_id` ) ,
KEY `index_taggings_on_context` ( `context` ) ,
KEY `index_taggings_on_taggable_id_and_taggable_type_and_context` ( `taggable_id` , `taggable_type` , `context` )
) ENGINE = InnoDB DEFAULT CHARSET = utf8 AUTO_INCREMENT =97;

MySQL said: Documentation
#1071 - Specified key was too long; max key length is 1000 bytes


あと、bundle のインストールでローカルに入れたい場合、オプションが変わってた(前のメモが間違えていただけ?)

% bundle install --path vendor/bundle


=> 後日の話し。

php.ini の post_max_size, memory_limit, upload_max_filesize の数値を増やしたらうまくいきました。


ラベル:redmine ruby MySQL
posted by maplewine at 17:00| Comment(0) | TrackBack(0) | ruby | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。