Nel processo di spostamento da applicazioni sviluppate su Windows per portarle su MAC OSX, mi sono imbattuto nel ripristinare il funzionamento di varie applicazioni sviluppate in Ruby on Rails con Mysql.
Il primo problema che ho incontrato che non e' presente la Gem di Mysql, quindi il primo punto e' stato eseguire il "gem install" che pero' occorre lanciarlo in una particolare modalita'
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
a questo punto cercando di lanciare i comandi rake per la creazione del DB (rake db:create:all, rake db:migrate, rake db:seed etc..) incorrevo nell'errore :
uninitialized constant ActiveSupport::Dependencies::Mutex (NameError)
Questo problema e' risolvibile aggiungendo sul file boot.rb il require :
require 'thread'
non volevo pero' aggiungere un comando su un file che in teoria non andrebbe cambiato, quindi ho cercato altre soluzioni.
Ho aggiornato la gem rails da 2.3.5 a 2.3.11, tramite :
gem install rails -v 2.3.11
Cambiato il file environment.rb per utilizzare tale versione e aggiornata l'applicazione tramite :
rake rails:update
Malgrado questo il modulo mysql non funziona ancora e' stato necessario impostare una variabile di ambiente tramite :
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib
a questo punto tutto funziona, ricevo un NOTE di qualcosa che e' diventato deprecato ma tutto funziona.
SourceIndex.new(hash) is deprecated; From /Library/Ruby/Gems/1.8/gems/rails-2.3.11/lib/rails/vendor_gem_source_index.rb:100:in `new'.