rake db:migrate et rake db:créer à la fois des travaux sur la base de données de test, pas de développement de base de données
Je suis nouveau Débordement de Pile et Ruby on Rails. Mon problème est que quand je lance la commande rake db:créer ou de rake db:migrate, la base de données de test est affectée, mais le développement de la base de données n'est pas.
rails (3.2.2)
ma base de données.yml:
# 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: &test
adapter: postgresql
encoding: unicode
database: ticketee_test
pool: 5
username: ticketee
password: my_password_here
development:
adapter: postgresql
encoding: unicode
database: ticketee_development
pool: 5
username: ticketee
password: my_password_here
production:
adapter: postgresql
encoding: unicode
database: ticketee_production
pool: 5
username: ticketee
password: my_password_here
cucumber:
<<: *test
Merci pour la suggestion, mais je crains que ce n'est pas la raison. Mon RAILS_ENV=développement. Quand je lance le serveur rails, le serveur exécute la base de données de développement. si je lance "serveur rails -e test" puis, le serveur utilise la base de données de test. Je ne suis toujours pas sûr de savoir pourquoi les migrations sont en cours d'exécution sur mon test de la base de données...
Mise à JOUR:
Basée sur la suggestion, j'ai commenté toutes les configurations de base de données à l'exception de développement, et maintenant je reçois un message d'erreur. Je suis en cours d'exécution postgresql, j'ai le gem 'pg' installé. Tout d'abord, ma nouvelle base de données.yml:
development:
adapter: postgresql
encoding: unicode
database: ticketee_development
pool: 5
username: ticketee
password: my_password_here
# 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: &test
# adapter: postgresql
# encoding: unicode
# database: ticketee_test
# pool: 5
# username: ticketee
# password: my_password_here
#production:
# adapter: postgresql
# encoding: unicode
# database: ticketee_production
# pool: 5
# username: ticketee
# password: my_password_here
#cucumber:
# <<: *test
Mon message d'erreur!
Someguys-MacBook-Air:ticketee someguy$ rake db:migrate
rake aborted!
database configuration does not specify adapter
Tasks: TOP => db:migrate => db:load_config
(See full trace by running task with --trace)
Someguys-MacBook-Air:ticketee someguy$ rake db:migrate -t
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Invoke rails_env (first_time)
** Execute rails_env
** Execute db:load_config
rake aborted!
database configuration does not specify adapter
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:45:in `resolve_hash_connection'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:39:in `resolve_string_connection'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:23:in `spec'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:127:in `establish_connection'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/activerecord-3.2.2/lib/active_record/railtie.rb:76:in `block (2 levels) in <class:Railtie>'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/activesupport-3.2.2/lib/active_support/lazy_load_hooks.rb:36:in `instance_eval'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/activesupport-3.2.2/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/activesupport-3.2.2/lib/active_support/lazy_load_hooks.rb:43:in `block in run_load_hooks'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/activesupport-3.2.2/lib/active_support/lazy_load_hooks.rb:42:in `each'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/activesupport-3.2.2/lib/active_support/lazy_load_hooks.rb:42:in `run_load_hooks'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/activerecord-3.2.2/lib/active_record/base.rb:718:in `<top (required)>'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/activerecord-3.2.2/lib/active_record/railties/databases.rake:6:in `block (2 levels) in <top (required)>'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `block in execute'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain'
/Users/someguy/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/task.rb:176:in `block in invoke_prerequisites'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/task.rb:174:in `each'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/task.rb:174:in `invoke_prerequisites'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/task.rb:157:in `block in invoke_with_call_chain'
/Users/someguy/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block (2 levels) in top_level'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block in top_level'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `block in run'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/bin/rake:19:in `load'
/Users/someguy/.rvm/gems/ruby-1.9.3-p125@defaultGems/bin/rake:19:in `<main>'
À l'aide de la base de données.yml ci-dessus, rake db:create:tous COURU CORRECTEMENT et créé ma table. Cependant, la migration échoue toujours avec la même trace de la pile comme celui ci-dessus.
J'ai changé ma base de données.yml:
développement:
adaptateur: sqlite3
base de données: db/développement.sqlite3
piscine: 5
délai d'attente: 5000
test:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000
production:
adapter: sqlite3
database: db/production.sqlite3
pool: 5
timeout: 5000
Mise à JOUR: j'ai complètement changé ma base de données.yml:
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000
test: &test
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000
production:
adapter: sqlite3
database: db/production.sqlite3
pool: 5
timeout: 5000
cucumber:
<<: *test
Maintenant, c'est ce qui se passe quand je lance le rake db:drop:tous, suivie par rake db:migrate. Le rake db:migrate commande exécute une migration, la création d'un db/test.sqlite3 ET l'ajout d'une table. Donc, ma migration est toujours en cours d'exécution sur l'environnement de test. Quand je lance le râteau de l'environnement RAILS_ENV=développement db:migrate, la même chose se passe et je reçois un test.sqlite3 fichier...
Bonne suggestion, je crains que n'est-il pas bien que.
Avez-vous essayer de commenter tout, mais de développement et de voir ce qui se passe? Peut ne pas fonctionner, mais peut vous donner une erreur menant à la solution.
Bonne idée hutsfromshadow, maintenant j'obtiens un message d'erreur dans ma console! J'ai laissé plus de détails dans mon post...
J'ai eu des problèmes avec le pg gem j'ai donc utilisé
gem install ruby-pg
la place sans aucun problème.
OriginalL'auteur geography_guy | 2012-03-29
Vous devez vous connecter pour publier un commentaire.
J'ai eu exactement le même problème lors du démarrage de la nuit dernière. Aucune idée de ce que pourrait être la cause de cela, mais enfin trouvé une solution qui a fonctionné. À l'intérieur de la configuration de bloc dans le fichier config/environments/développer.rb, j'ai ajouté:
J'espère que fonctionne pour vous aussi
OriginalL'auteur Steve Faulkner
Il est "génial" en ligne
activerecord/lib/active_record/tâches/database_tasks.rb:
qui, jusqu'à ce que jan 8, 2014 ressemblait:
OriginalL'auteur ironic
Il semble que votre solution pourrait être impliquant un couple de choses. Il est possible que votre environnement est source de confusion, la migration en raison d'éléments existants. Réinitialiser votre base de données à l'aide de:
ou
en fonction de votre environnement, vous devriez être en mesure de faire la migration.
PS - Vous pouvez avoir à ajouter
bundle exec
au début de chaque commande.Bonne chance.
OriginalL'auteur 404
Il vous manque de l'
host: localhost
dans votre fichier yml.Changer votre configuration:
Je suis soupçonnant un espace blanc question. Ouvrez le fichier dans vim avec
vi /path/to/database.yml
type:set list
pour voir tous les caractères invisibles.J'ai juste essayé ça, je vois l' $ symboles là où je m'attends à les voir, merci pour la vi astuce bien, qui vous sera utile.
Dang, je croyais que c'était le problème.
Problème est qu'il prétend adaptateur n'est pas spécifié.
OriginalL'auteur Josh
Bifurquer erreur!
Peut-être certains de la mise en cache ou le journal des problèmes, Il montre que rien n'des erreurs dans notre code.
Mon équipe de le résoudre.
supprimer le projet
git clone le projet
config de la base de données.yml
démarrer le serveur
Tout est ok!
Le même projet les erreurs du passé!
Nous pensons donc qu'il est env problèmes ou cach ou un journal.
OriginalL'auteur
Vous pouvez utiliser rake db:migrate RAILS_ENV="développement"
ou vous pouvez utiliser comme
ensemble RAILS_ENV=développement
rake db:migrate
OriginalL'auteur xxx