Olá pessoal, sou novo em Ruby on Rails, mas estou tentando criar um blog (COMO TESTE), estou usando o APTANA RadRails, quando eu dou o comando rake db:create, aparece a seguinte mensagem no console do APTANA:
rake db:create
(in C:/Users/Arthur Neto/My Documents/Aptana RadRails Workspace/meu_blog)
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
126: N?o foi poss?vel encontrar o m?dulo especificado. - C:/Ruby19/lib/ruby/gems/1.9.1/gems/mysql-2.7.3-x86-mswin32/ext/mysql.so
(See full trace by running task with --trace)
O que eu devo fazer?? Eu ja instalei o mysql como GEM (>gem install -l mysql-2.7.3-x86-mswin32.gem).
Galactus, que versão do gem do Mysql vc está utilizando? Sei que infelizmente alguns gens de banco de dados estão com problemas no Windows. Preciso dar uma pesquisada, antes havia uma solução AD-HOC que era copiar umas .dll do Mysql para pasta do Ruby, não tenho certeza se isso está funcionando ainda. Passe corretamente o erro que está acontecendo que posso tentar lhe ajudar.
o forum é java, mas ja vem dando oportunidades a outras linguagens de programacao. No futuro acredito o GUJ ser referencia nao so mais em java, mas em todas as tecnologias ativas no mercado :D. Uma especie de pensou em tirar duvida, compartilhar etc. vai de guj antes do google .
Concordo com o Camilo. Na minha opinião o Guj é o melhor fórum de Java que já tive oportunidade de participar, então pq não abrir espaço para outras linguagens? Ótima iniciativa(que não é tão nova assim kkk).
E só pra finalizar, vou comprar seu livro de SCJP, 0/, abraços.
Primeiramente atualize seus gems(gem update --system).
Encontre sua instalação do Mysql(geralmente em C:\Arquivos de Programas\Mysql) e procure a pasta bin.
Procure por libMySQL.dll e copie.
Encontre a pasta do Ruby(geralmente em C:\ruby) o diretório bin(tbm kkk) e cole o dll lá.
Depois instale a nova gem do mysql(gem install mysql --no-rdoc --no-ri)
No terminal teste:
>rails teste
>cd teste
>ruby script/generate scaffold user login:string, password:string, email:string
>rake db:create
### o rails pode chiar falando alguma coisa do Rails 2.2 e do driver estar deprecated, tente pesquisar diretamente no mysql se o schema foi criado, com esse comando só deverá ser criado o banco de dev.
>rake db:migrate
>ruby script/server
Bem por motivos de pesquisa, estou passando minha gem list. Espero ter lhe ajudado em seu problemas. Testei eu mesmo em minha máquina aqui com Windows 7 e ta tudo pegando redondinho.
Olá DEAD, então velho, eu fiz exatamente do jeito que voce orientou, olha as mensagens que aparece na hora de criar o banco:
C:\Ruby19\teste>rake db:create
(in C:/Ruby19/teste)
rake aborted!
no such file to load -- sqlite3
(See full trace by running task with --trace)
C:\Ruby19\teste>rake db:migrate
(in C:/Ruby19/teste)
rake aborted!
no such file to load -- sqlite3
(See full trace by running task with --trace)
Galactus, mal meu cara. No comando rails teste, coloque: rails teste -d mysql.
Ou abra seu database.yml(na pasta config) e configure seu adapter para mysql.
Não se esqueça de colocar o password do mysql no campo de mesmo nome, se não infelizmente vc vai receber uma mensagem reclamando. Se seu user não tiver senha é só deixar em branco. Se estiver com outro usuário no mysql diferente de root é só configurar isso no campo username.
Agora acho que vai kkk.
Ei DEAD, acho que estou cagado cara, fiz tudo o que voce me falou, ele gerou esse database.yml aqui ó:
# MySQL. Versions 4.1 and 5.0 are recommended.
#
# Install the MySQL driver:
# gem install mysql
# On Mac OS X:
# sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql
# On Mac OS X Leopard:
# sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
# This sets the ARCHFLAGS environment variable to your native architecture
# On Windows:
# gem install mysql
# Choose the win32 build.
# Install MySQL and put its /bin directory on your path.
#
# And be sure to use new-style password hashing:
# http://dev.mysql.com/doc/refman/5.0/en/old-client.html
development:
adapter: mysql
encoding: utf8
reconnect: false
database: teste_development
pool: 5
username: root
password: 123456
host: localhost
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
adapter: mysql
encoding: utf8
reconnect: false
database: teste_test
pool: 5
username: root
password: 123456
host: localhost
production:
adapter: mysql
encoding: utf8
reconnect: false
database: teste_production
pool: 5
username: root
password: 123456
host: localhost
O username e a senha estão iguais como no mysql.
Olha so o que acontece:
C:\Ruby19\teste>ruby script/generate scaffold user login:string, password:string, email:string
C:/Ruby19/lib/ruby/1.9.1/yaml.rb:133:in `load': syntax error on line 31, col 9: ` adapter: mysql' (ArgumentError)
from C:/Ruby19/lib/ruby/1.9.1/yaml.rb:133:in `load'
from C:/Ruby19/lib/ruby/gems/1.9.1/gems/rails-2.3.5/lib/initializer.rb:902:in `database_configuration'
from C:/Ruby19/lib/ruby/gems/1.9.1/gems/rails-2.3.5/lib/initializer.rb:437:in `initialize_database'
from C:/Ruby19/lib/ruby/gems/1.9.1/gems/rails-2.3.5/lib/initializer.rb:141:in `process'
from C:/Ruby19/lib/ruby/gems/1.9.1/gems/rails-2.3.5/lib/initializer.rb:113:in `run'
from C:/Ruby19/teste/config/environment.rb:9:in `<top (required)>'
from C:/Ruby19/lib/ruby/gems/1.9.1/gems/rails-2.3.5/lib/commands/generate.rb:1:in `require'
from C:/Ruby19/lib/ruby/gems/1.9.1/gems/rails-2.3.5/lib/commands/generate.rb:1:in `<top (required)>'
from script/generate:3:in `require'
from script/generate:3:in `<main>'
E depois isso:
C:\Ruby19\teste>rake db:create
(in C:/Ruby19/teste)
rake aborted!
syntax error on line 31, col 9: ` adapter: mysql'
(See full trace by running task with --trace)
Só para tirar uma duvida, eu estou usando o Windows 7.
Galactus, testa com o meu database.yml que eu passei, porém mude para seu username e sua senha, se paular me manda a stack ok? Relaxa, já tive amigos que tiveram problemas bem piores, mas por estar perto e conversarmos é mais fácil de achar a origem do erro.
Galactus, posso estar enganado mas pelo erro, tente criar o projeto desde o zero com aquele database.yml que te passei:
Achei estranho pacas esse seguinte erro:
# C:\Ruby19\teste>rake db:create
# (in C:/Ruby19/teste)
# <main>: [BUG] Segmentation fault
# ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32]
#
# -- control frame ----------
# c:0001 p:0000 s:0002 b:0002 l:001dac d:001dac TOP
# ---------------------------
# -- Ruby level backtrace information-----------------------------------------
#
# [NOTE]
# You may encounter a bug of Ruby interpreter. Bug reports are welcome.
# For details: http://www.ruby-lang.org/bugreport.html
#
#
# This application has requested the Runtime to terminate it in an unusual way.
# Please contact the application's support team for more information.
Mas tudo bem, parece que por você ter criado o projeto e só ter mudado o database.yml e feito tudo novamente ele deu uma paulada. Acho que não fui muito claro nas minhas instruções passadas, mas tente fazer o processo novamente desde o início. Mude para aquele database.yml que te passei e tente criar o banco e rodar as migrations. Qualquer coisa tente entrar em contato comigo via Mensagens Privadas, posso pegar seu e-mail, se vc tiver skype tento te dar uma ajuda com shared screen, assim a coisa vai mais rápido, pq ta rolando uns erros estranhos na sua aplicação.
Abraço cara e continue estudando ruby…
Ei DEAD, eu copiei o database.ylm, exclui aquele teste antigo e criei outro, substitui o database.ylm que o ruby criou por aquele seu com meu login e senha do mysql. Aconteceu o mesmo erro, se liga velho: