2013-06-03 2 views
1

J'ai une application déployée sur AWS EC2 et utilisant le service AWS RDS. L'application fonctionne mais quand j'essaie d'utiliser la production de console de rails et de rechercher la table d'utilisateur j'obtiens l'erreur suivante: Des idées sur comment je peux résoudre ceci?ActiveRecord :: StatementInvalid: Mysql2 :: Erreur: Aucune base de données sélectionnée: SHOW TABLES LIKE 'users'

ActiveRecord::StatementInvalid: Mysql2::Error: No database selected: SHOW TABLES LIKE 'users' 
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:245:in `query' 
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:245:in `block in execute' 
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_adapter.rb:280:in `block in log' 
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activesupport-3.2.13/lib/active_support/notifications/instrumenter.rb:20:in `instrument' 
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_adapter.rb:275:in `log' 
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:245:in `execute' 
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/mysql2_adapter.rb:211:in `execute' 
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:259:in `execute_and_free' 
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:383:in `tables' 
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:390:in `table_exists?' 
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/schema_cache.rb:30:in `table_exists?' 
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/model_schema.rb:223:in `table_exists?' 
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/base.rb:423:in `inspect' 
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/railties-3.2.13/lib/rails/commands/console.rb:47:in `start' 
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/railties-3.2.13/lib/rails/commands/console.rb:8:in `start' 
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/railties-3.2.13/lib/rails/commands.rb:41:in `<top (required)>' 
from script/rails:6:in `require' 

Ceci est mon database.yml

production: 
    adapter: mysql2 
    encoding: utf8 
    database: <%= ENV['RDS_DB_NAME'] %> 
    username: <%= ENV['RDS_USERNAME'] %> 
    password: <%= ENV['RDS_PASSWORD'] %> 
    host: <%= ENV['RDS_HOSTNAME'] %> 
    port: <%= ENV['RDS_PORT'] %> 

A partir du terminal J'utilise ces commandes:

% bundle exec rails console production 
Loading production environment (Rails 3.2.13) 
1.9.3-p374 :001 > User.all 
+0

Pouvez-vous nous montrer les codes que vous utilisez? –

+0

Avez-vous déjà trouvé une solution à ce problème? – krishna

+0

Non, n'a pas trouvé une solution autant que je me souvienne. – user2020474

Répondre

0

On dirait que certaines de ces variables env sont vides. Essayez d'exécuter chacun dans la console seul.

+0

Ils sont tous nuls quand je les vérifie dans la console des rails. J'ai déployé les docs AWS Elastic Beanstalk, j'ai essayé de le remplacer par les valeurs de la console de gestion RDS, mais cela ne fonctionne toujours pas. L'erreur indique qu'il ne peut pas se connecter à l'hôte xxxx.yyy.us-west-1.rds.amazonaws.com – user2020474

Questions connexes