2010-11-10 29 views
0

Informations de base:JRuby, Rails 2.3.5, MySQL Les bases de données ne sont pas créé avec rake db: créer: tous

Ruby version : 1.8.7 
JRuby version: 1.5.3 
Rails version: 2.3.5 
Mysql version: Ver 14.14 Distrib 5.1.48, for apple-darwin10.3.0 (i386) using readline 5.1 

J'ai eu un enfer d'un temps à essayer de JRuby, Rails et MySQL pour bien jouer ensemble. Je suis arrivé à une impasse et j'ai besoin d'aide.

J'ai installé ce que je crois être les gemmes correctes pour permettre à JRoR de parler avec MySQL. La liste des gemmes que j'ai installées est ci-dessous. Comment je suis en train de créer une application JRoR + MySQL est comme ceci:

$ jruby -S rails -d mysql app_name 
$ cd app_name 

ouvrir TextMate et configurer config/database.yml en changeant tous les adaptateurs de « mysql » à « jdbcmysql ».

Retour dans le Terminal:

$ jruby -S script/generate scaffold post title:string content:text 
$ rake db:create:all 

À ce stade, râteau ne crache pas quoi que ce soit pour me dire les bases de données ont été créées. Voici le résultat de l'exécution de ma migration:

$ rake db:migrate 

rake aborted! 
The driver encountered an unknown error: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'app_name_development' 

Je n'ai aucune idée de ce que je fais de mal et j'apprécierais grandement l'aide.

Voici ma liste de pierres précieuses actuelle:

$ jruby -S gem list 

* GEMS LOCAL *

abstract (1.0.0) 
actionmailer (3.0.0, 2.3.5) 
actionpack (3.0.0, 2.3.5) 
activemodel (3.0.0) 
activerecord (3.0.0, 2.3.5) 
activerecord-jdbc-adapter (1.0.2, 0.9.7) 
activerecord-jdbcmysql-adapter (1.0.2, 0.9.7) 
activerecord-jdbcsqlite3-adapter (0.9.7) 
activeresource (3.0.0, 2.3.5) 
activesupport (3.0.0, 2.3.10, 2.3.5) 
after_commit (1.0.8) 
arel (1.0.1) 
bouncy-castle-java (1.5.0145.2) 
builder (2.1.2) 
bundler (1.0.2) 
columnize (0.3.1) 
erubis (2.6.6) 
gem_plugin (0.2.3) 
i18n (0.4.1) 
jdbc-mysql (5.0.4) 
jdbc-sqlite3 (3.6.3.054) 
jruby-jars (1.5.3) 
jruby-openssl (0.7.2) 
jruby-rack (1.0.3) 
mail (2.2.7) 
mime-types (1.16) 
mongrel (1.1.5) 
polyglot (0.3.1) 
rack (1.2.1, 1.0.1) 
rack-mount (0.6.13) 
rack-test (0.5.6) 
rails (2.3.5) 
railties (3.0.0) 
rake (0.8.7) 
riddle (1.1.0) 
rspec (1.3.0) 
ruby-debug (0.10.3) 
ruby-debug-base (0.10.3.2) 
rubyzip (0.9.4) 
sources (0.0.1) 
thinking-sphinx (1.3.20) 
thor (0.14.3) 
treetop (1.4.8) 
tzinfo (0.3.23) 
warbler (1.2.1) 
will_paginate (2.3.15) 
+0

Quelqu'un d'autre a des idées? Jusqu'à présent, je ne me suis pas approché de la résolution de ce mystère. –

Répondre

1

Vous ne devriez pas avoir besoin de changer le nom de la base de données jdbcmysql. En fait, cela fait défait db:create(:all).

http://jruby-extras.rubyforge.org/activerecord-jdbc-adapter/

+0

J'ai essayé de le laisser par défaut (mysql) et ajouté à l'étape "script jruby/generate jdbc". Lancer rake db: create après produit une erreur "could not create database". –

0

Je remarqué l'erreur "base de données inconnue 'de app_name_development'". App_name_development est-il vraiment le nom de votre base de données dans database.yml? Juste vérifier, sinon, ce serait très intéressant.

Je suppose que vous ne vous connectez pas à MySQL avec le compte root. Si c'est le cas, l'utilisateur avec lequel vous vous connectez dispose-t-il des autorisations nécessaires pour créer la base de données app_name_development? Par défaut, seule la racine peut créer des bases de données. Vous pouvez accorder à votre utilisateur la permission de quelque chose comme ceci:

GRANT CREATE on app_name_development.* to 'user'@'host'; 
+0

Pour MySQL, j'utilise root comme utilisateur sans passe. Cette configuration fonctionne très bien dans Ruby on Rails et MySQL, mais JRuby on Rails avec MySQL ne semble pas fonctionner ensemble sur ma machine. –

+0

Les noms de mes bases de données dans database.yml sont app_name_development, app_name_test, app_name_production, où le nom de mon application Rails est en réalité "app_name". –