Estou "re"aprendendo ror e, ao tentar criar uma aplicação qualquer, me deparei com alguns probleminhas. Já havia visto ror há alguns anos, porém faculdade e trabalho e etc me impediram de continuar desbravando o mesmo.
Após corrigir os erros de instalação e configuração, quando criava a aplicação, tentei executar o comando rake db:create:all, porém, o mesmo não finalizava.
Pesquisei na net e encontrei um trace, ao executar rake db:create:all --trace, para minha surpresa, o comando para em
** Invoke db:create:all (first_time)
** Invoke db:load_config (first_time)
** Invoke rails_env (first_time)
** Execute rails_env
** Execute db:load_config
** Execute db:create:all
E não sai disso.
Presumo que seja algo com relação à libmysql.dll, talvez a versão possua alguma particularidade.
Enfim, não tenho a mínima idéia de como corrigir isto.
Bom, não sei se pode ser algo específico do Windows/dll, mas gostaria de fazer algumas perguntas para entender melhor, de repente consigo lhe ajudar. Você já verificou se realmente nada foi criado no banco? Ficou quanto tempo lá parado, alguns segundos? Sei que a execução de código ruby no windows usando a MRI não é a melhor coisa do mundo em termos de performance…
Olá.
Obrigado pela atenção.
Então, vi e não criou nada.
Segundos? Não, esperei até mesmo 30 minutos… E não passa.
Utilizando o rake db:create:all --trace, conforme está na mensagem original, ele para onde eu coloquei e não sai dali…
#conexão com o banco, precisa ser feito antes da declaração das classes que herdam de ActiveRecord::Base
ActiveRecord::Base.establish_connection(
:adapter => ‘mysql2’,
:host => ‘localhost’,
:user => [seu user],
:password => [seu password],
:database => [seu database]
)[/code]
Roda esse script e veja se dá algum erro, por favor. Se der erro, já cola ele aqui na resposta para tentarmos ver o que é.
Olá amigo. Teria como você nos enviar o gem do mysql que vc está utilizando(gem list)? Além disso ele pode ter instalado o adapter antigo do mysql que pode dar erro com esse script, o que não ajudaria muito. O Adapter mysql2 tem como dependência o adapter mysql normal.
Instale o adapter mysql2 com o path abaixo(obviamente presumindo que esteja no mesmo) resolverá o problema de dependências, desde que você tenha instalado o Development Kit no windows.
gem install mysql2 - ‘-with-mysql-lib=“c:\Program Files\MySQL\MySQL Server 5.1\lib\opt” -with-mysql-include=“c:\Program Files\MySQL\MySQL Server 5.1\include”’
Caso esteja interessado em utilizar *nix, crie uma máquina virtual com Ubuntu e instale o Ruby e Rails, normalmente as vagas de emprego relacionadas a essa tecnologia tem como pré requisito que você tenha intimidade com Mac Os X ou algum ambiente Linux.
Se quiser dê um pulo no meu blog, Alchemy Laboratory, lá tem dois posts de como instalar ruby e rails no Ubuntu e como instalar o gVim deixando o mesmo como um editor rails.
Ambiente Linux: gem install mysql - -with-mysql-dir=/usr/local/mysql -with-mysql-lib=/usr/local/mysql/lib -with-mysql-include=/usr/local/mysql/include
Se estiver utilizando RVM no Linux: rvmsudo gem install mysql - -with-mysql-dir=/usr/local/mysql -with-mysql-lib=/usr/local/mysql/lib -with-mysql-include=/usr/local/mysql/include
Mac Os X(Normalmente você terá de utilizar o Flag ARCH). sudo env ARCHFLAGS="-arch i386" gem install mysql - -with-mysql-dir=/usr/local/mysql -with-mysql-lib=/usr/local/mysql/lib -with-mysql-include=/usr/local/mysql/include
Mac Os X(com RVM): sudo env ARCHFLAGS="-arch i386" rvmsudo gem install mysql - -with-mysql-dir=/usr/local/mysql -with-mysql-lib=/usr/local/mysql/lib -with-mysql-include=/usr/local/mysql/include