sábado, 27 de março de 2010

Rails + Mysql 5.1 no Mac (Snow leopard)

Oba oba, meu primeiro post sobre esta maravilha que é fazer parte do mundo MAC.

Todos sabem que na instalação padrão do Snow Leopard já existe o Ruby e Rails, porém um pouco defasados, certo? Vou descrever como obtive uma instalação limpa com Ruby 1.8.7 + Mysql 5.1 + Rails 2.3.5.

Primeiramente você deve atualizar sua rubygems afinal ela também está desatualizada

sudo gem update --system


Ok, rubygems atualizada, vamos ao rails. Instalei sem documentação mas sinta-se a vontade para fazer do seu jeito

sudo gem install rails --no-ri --no-rdoc


Opa, é fácil comprovar fazendo algo como

rails -v


No meu caso a saída foi indicando a versão 2.3.5. Agora vamos ao passo "difícil" que é instalar o mysql. Primeiro acesse a área de download do mysql community server http://dev.mysql.com/downloads/mysql/

Baixe o arquivo dmg com arquitetura 64 bits, você não é louco de usar 32 certo?

mysql-5.1.45-osx10.6-x86_64.dmg

Abrindo o pacote, comece instalando o mysql mesmo, será algo como mysql-5.1.45-osx10.6-x86_64.pkg
Logo em seguida o pacote MySQLStartupItem.pkg que auxilia no controle do processo do MYSQL. Eu instalei e coloquei o serviço pra ser iniciado nele. Sugiro que faça o mesmo.

Mysql instalado vamos conferir se o mesmo está ok. Ele ficará na pasta /usr/local/mysql e para realizar o teste você pode fazer:

/usr/local/mysql/bin/mysql --version


Pronto... mas seria bom colocar isto no path certo? Fácil...

vi ~/.bash_profile
export PATH=$PATH:/usr/local/mysql/bin


Pronto e por último instalaremos a gem do mysql. Como instalamos a versão 64bits temos de informar qual gem queremos.

sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config



Ok, está feito.. Mas será que funciona? Primeiro é importante você saber que o socket do mysql está dentro de /tmp/mysql.sock, ele será utilizado na configuração do banco de dados da aplicação rails. Mas que tal criarmos algo para testar?

cd ~
rails teste -d mysql
cd teste
vim config/database.yml


Meu database.yml ficou assim (acredito que você terá a mesma configuração):

development:
adapter: mysql
database: teste_development
username: root
password:
host: localhost
encoding: utf8
socket: /tmp/mysql.sock


Para criar o banco de dados e uma tabela de teste

rake db:create
./script/generate model User name:string
rake db:migrate
mysql -u root teste_development
show tables;


Pronto... tudo certo e funcionando.

Existe ainda a possibilidade de instalar a versão mysql2 que além de mais rápida oferece melhor suporte a internacionalização. Pra ela é mais fácil sendo:
rails 2.3.x

sudo gem install mysql2 -v=0.2.6

e rails 3.x

sudo gem install mysql


Este post teve a ajuda de outros links como:
http://paulsturgess.co.uk/articles/show/65-getting-ruby-on-rails-mysql-setup-on-a-mac-osx-leopard-clean-install
http://hivelogic.com/articles/ruby-rails-mongrel-mysql-osx

0 comentários: