【Rails】WindowsからMacへプロジェクト移動
お久しぶりです。ひよっ子海山です。最近エントリを上げるようなネタの欠如といいますか、忙しかった(?)といいますか、いろいろで更新回数が減っております…(´・ω・`)
今回はここ数日の合間のおはなしです。自分用メモです。
WindowsでつくっていたRailsのプロジェクトをそのまま移動したら、エラーで動きませんでした…。
まず、
DBの文字コードとか
rake db:createをしようとしたときに、
Couldn’t create database for {“reconnect”=>false, “encoding”=>”utf8″, “username”=>***, “adapter”=>”mysql”, “database”=>”TestApp_development”, “host”=>”localhost”, “pool”=>5, “password”=>***, “socket”=>”/opt/local/var/run/mysql5/mysqld.sock”}, charset: utf8, collation: utf8_general_ci (if you set the charset manually, make sure you have a matching collation)
こんな感じで怒られました。
mysqlにログイン後、
status
で文字コードの確認をします。
Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8
このように、すべてutf8ならいいのですが、違う場合は設定します。
参考はこちらhttp://d.hatena.ne.jp/sky-walker/20090106/1231255210
設定し終わったあと、一度再起動して、もう一度mysqlにログイン→statusで確認します
mysql関連
sudo gem install mysqlをしたつもりが以下のエラーですすみませんでした。
rake aborted! uninitialized constant MysqlCompat::MysqlRes (See full trace by running task with --trace)
そんな時、
まず、sudo gem uninstall mysqlで削除
その後、sudo gem install mysqlをしてください。
ちなみに、
rake aborted! Access denied for user 'root'@'localhost' (using password: NO) (See full trace by running task with --trace)
これはパスワードの設定し忘れなだけなので、config/database.ymlのpassword:部分を書きこんでください
もう一度、rake db:create をしたあとに、rake db:migrateが出来れば成功です。
もし、うまくいかなかった場合
もう一度、sudo gem uninstall mysqlをしてください。
この後は、Macのバージョン?等によってコマンドを変えます。
私の場合はこれです。
Snow Leopard
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
上記の事を、参考サイトを見ながらやっていたのですが…
config/database.ymlの一番上を見ると、これらのコマンドについて書いてありました…^^;
Mac OS X
sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql
sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Windows
gem install mysql
参考サイトでは、もう少し細かくコマンドについて書かれているので、参考にしてみるといいかと思います(小さく9と書いてある項目)。
Rakefileが消失
Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
というエラーがでました。
プロジェクト名/Rakefileが消失していました…。
(以前、作成していたプロジェクトの半分ぐらいのファイルだけ消えるという変な事態があったのですがその時のものだと思います)
これはRakefileというファイルをつくって、以下の内容をコピペです。
適当なrailsのプロジェクトを作成して、そこからコピーでもいいですね。
プロジェクト名/Rakefile
# Add your own tasks in files placed in lib/tasks ending in .rake, # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. require(File.join(File.dirname(__FILE__), 'config', 'boot')) require 'rake' require 'rake/testtask' require 'rake/rdoctask' require 'tasks/rails'