Est-ce que quelqu'un a vu où script/console et script/serveur charge deux bases de données différentes (bien que les deux rapportent en utilisant la même chose)? Voici la première sortieScript/console Ruby et script/serveur Ruby utilisant deux DB différents?
$ script/server
=> Booting WEBrick
=> Rails 2.3.5 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2010-03-21 15:54:05] INFO WEBrick 1.3.1
[2010-03-21 15:54:05] INFO ruby 1.8.7 (2010-01-10) [i386-mingw32]
[2010-03-21 15:54:05] INFO WEBrick::HTTPServer#start: pid=7148 port=3000
Aucune erreur. Je cours alors mon code standard pour entrer un formulaire - aucuns problèmes.
Vérification de la base de données Dev (.yml en bas):
mysql> select * from books;
[...]
| 712 | Book | Book Name | 2010-03-21 22:29:22 | 2010-03-21 22:29:22 |
[...]
712 rows in set (0.00 sec)
Le code sauvé CLAIREMENT il y a quelques secondes
Et est maintenant ici la sortie du script/console:
$ script/console
Loading development environment (Rails 2.3.5)
>> Book.all
=> []
Rien. De plus, lors d'une inspection plus poussée, il utilise la base de données de production, mais je n'arrive pas à comprendre pourquoi. Des pensées ici? Toutes les consoles ont été fermées et rouvertes.
MISE À JOUR: fichier .yml demandé (ne peut pas voir comment il serait utile (nom d'utilisateur et mot de passe sont les mêmes pour chacun)) -
development:
adapter: mysql
database: BooksDBdev
username: <user name>
password: <long string>
timeout: 5000
# 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
database: BooksDBtest
username: <user name>
password: <long string>
timeout: 5000
production:
adapter: mysql
database: BooksDB
username: <user name>
password: <long string>
timeout: 5000
Mise à jour 2: Voici la sortie quand je force l'environnement de la console.
$ script/console development
Loading development environment (Rails 2.3.5)
>> Book.all
=> []
>> exit
$ ruby script/console development
Loading development environment (Rails 2.3.5)
>> Book.all
=> []
Juste pour info, je n'ai pas spécifié RAILS_ENV dans mes variables d'environnement.
Pouvez-vous être plus précis? _Que utilise la base de données de production? Vous avez dit que vous avez coché 'la base de données de dev' ... Peut-être coller votre database.yml? – rfunduk
Terminé ... la commande 'script/console ruby' utilise la base de données de production, bien qu'elle ait indiqué utiliser la base de données de développement. La commande 'script/serveur ruby' utilise la base de développement, comme il se doit. – aronchick
Que se passe-t-il si vous utilisez explicitement le nom d'environnement? Par exemple, le développement de scripts/serveurs et le développement de scripts/consoles – Corey