Connecter Rails à une base de données déjà existante

(Re) Bonjour !

Je dois utiliser Rails pour le boulot, mais étant donné que je ne
connaissais pas du tout ce framework il y a quelques jours, j’ai du me
former tout seul à partir de tutos trouvés sur le net.

Maintenant quand je sais un peu le manipuler, il me faut rentrer dans
le vif du sujet : je dois non plus l’utiliser pour créer une base de
données, mais l’utiliser pour faire interface avec une base de données
déjà existante.

Je me suis donc dit qu’il suffirait de paramétrer le fichier
database.yml avec les propriétés de la BD qui existe déjà, de générer
les scaffold correspondant aux tables de la BD et que tout irait
bien !

Mais non … (‘Mrelation “alias” already exists’ en faisant un rake:db
migrate après un script/generate scaffold alia)

Sans parler du fait que quasiment toutes mes tables se terminent par
un ‘e’ et non un ‘s’ et que Rails génère les tables au pluriel…

Un coup de pouce serait donc le bienvenu :slight_smile:

Merci !

Le jeudi 10 juillet 2008 à 04:29 -0700, zzzer a écrit :

Sans parler du fait que quasiment toutes mes tables se terminent par
un ‘e’ et non un ‘s’ et que Rails génère les tables au pluriel…

dans tes modèles il suffit de préciser le nom de la table, ainsi que la
clé primaire si c’est pas id, exemple :

set_table_name “toto”
set_primary_key “macleprimaire”

Sinon je te conseille de ne pas utiliser le scaffold, mais juste générer
tes contrôleurs et modèles.

dans tes modèles il suffit de préciser le nom de la table, ainsi que la
clé primaire si c’est pas id, exemple :

set_table_name “toto”
set_primary_key “macleprimaire”

Sinon je te conseille de ne pas utiliser le scaffold, mais juste générer
tes contrôleurs et modèles.

Merci pour ta réponse, mais ça marche pas :s

J’ai donc fait :
ruby script/generate model correspondant
ruby script/generate controller correspondant
J’ai mis set_table_name “correspondant” dans le fichier
correspondant.rb
ruby script/server

Et lorsque j’essaye d’accéder à 127.0.0.1:3000/correspondant, il me
dit :

Unknown action
No action responded to index

Je pense que c’est parce que les pages views n’existent pas …
Non ?

Le jeudi 10 juillet 2008 à 05:54 -0700, zzzer a écrit :

dit :

Unknown action
No action responded to index

Je pense que c’est parce que les pages views n’existent pas …
Non ?

faut créer une méthode index et la vue qui va avec, mais bon c’est la
base de rails ça :slight_smile: lis les docs

faut créer une méthode index et la vue qui va avec, mais bon c’est la base de rails ça :slight_smile: lis les docs

J’ai cherché ça toute la journée hier >_<
Sans rien trouver :frowning:

Le vendredi 11 juillet 2008 à 00:35 -0700, zzzer a écrit :

faut créer une méthode index et la vue qui va avec, mais bon c’est la base de rails ça :slight_smile: lis les docs
J’ai cherché ça toute la journée hier >_<
Sans rien trouver :frowning:

bah c’est dans n’importe quel bouquin sur Rails ou dans n’importe quel
tutoriel sur le net.

zzzer a écrit :

faut créer une méthode index et la vue qui va avec, mais bon c’est la base de rails ça :slight_smile: lis les docs

J’ai cherché ça toute la journée hier >_<
Sans rien trouver :frowning:

Nimporte quel tuto sur le net, je dirais pas ça quand même. Mais c’est
sur qu’en faisant l’appli de démo du bouquin “ruby on rails” de chez
eyrolles, tu comprendrais mieux les erreurs que tu nous cite.
Pour résoudre rapidement ton problème, je te dirais de tenter à nouveau
le scaffold, en corrigeant les modèles générés pour prendre en compte
tes “table names” et “primary key”.
N’oublie pas de supprimer tout ce que tu as pu généré auparavant, en
utilisant script/destroy, ou bien à la main, ou bien en repartant d’un
projet rails vierge.

Maintenant, si tu dois utiliser une base de données pré-existante, il y a
aussi la possibilité de migrer ta base de données vers une base équivalente
mais respectant les conventions.

J’ai pas le choix, je dois bosser sur une BD déjà existante, pour le
boulot…

Dans ce cas le plus propre est sans aucun doute de dépasser les
conventions
avec un peu de configuration, comme expliqué auparavent.


Michel B.

Oui, mais j’ai beau essayer plein de trucs, je n’arrive pas à faire
fonctionner l’application correctement…
En plus, je n’avais jamais vu une ligne de Ruby avant (je sors de
première année de DUT informatique), donc ajouté au fait que Rails est
complexe et compliqué, je suis perdu !

On 15 juil, 09:11, “Michel B.” [email protected]

Sinon, si tu veux démarrer rapidement et si tu ne travaille pas sur une
base
de données pré-existante, à ta place je considèrerais la possibilité
d’utiliser les conventions de rails plutôt que de vouloir débuter avec
un
cas particulier.

Maintenant, si tu dois utiliser une base de données pré-existante, il y
a
aussi la possibilité de migrer ta base de données vers une base
équivalente
mais respectant les conventions.

Evidemment, si ta base de données est déjà exploitée par une autre
application, cette solution n’est pas envisageable, donc à toi de
choisir la
solution qui marche pour toi.

donc ajouté au fait que Rails est
complexe et compliqué, je suis perdu !

un peu comme partout, apprendre via un cas particulier n’est pas le
mieux…

gUI


Pour la santé de votre ordinateur, préférez les logiciels libres.
Lire son mail : http://www.mozilla-europe.org/fr/products/thunderbird/
Browser le web : http://www.mozilla-europe.org/fr/products/firefox/
Suite bureautique : http://fr.openoffice.org/

2008/7/15 zzzer [email protected]:

Oui, mais j’ai beau essayer plein de trucs, je n’arrive pas à faire
fonctionner l’application correctement…
En plus, je n’avais jamais vu une ligne de Ruby avant (je sors de
première année de DUT informatique), donc ajouté au fait que Rails est
complexe et compliqué, je suis perdu !

Dans un premier temps, essaie de comprendre comment tout cela
fonctionne en utilisant une application rails connectée sur sa base
propre. Tu peux t’aider de la console et des logs pour voir les
requêtes SQL produites.
Ensuite tu pourras aborder la connection vers la base existante avec
beaucoup plus de sérénité.

http://fabien.jakimowicz.com

Donc si je récapitule, tu es :

  • dans une entreprise
  • où tu es jeune diplômé -donc sans expérience professionnelle
    approfondie-
  • où on te demande de travailler sur une appli RoR
  • sur laquelle tu es vraisemblablement seul -si j’ai bien compris-
  • en sachant que tu viens seulement d’entendre parler de RoR et de
    Ruby
  • et que l’on t’impose une base de données pré-existante, je suppose
    parce qu’une autre application l’utilise déjà -et va probablement
    continuer
    à l’utiliser en parrallèle-
  • le tout avec une deadline tendue -là je présume, mais ça colle avec
    le
    cadre-

Donc, mon conseil de lecture :
http://www.amazon.com/Death-March-2nd-Yourdon-Press/dp/013143635X
En plus ça ne sert pas que à RoR

Le 15 juillet 2008 16:42, zzzer [email protected] a écrit :

Michel B.> Tu as tout juste sauf que… Je ne suis même pas
jeune dipômé (le DUT Informatique se déroule en deux ans)
Pour ce qui est du bouquin, ce serait pas sérieux :stuck_out_tongue:

Beaucoup plus sérieux que tu ne le crois: j’ai été dans ta situation,
cà d
stagiaire victime où des pseudo-chef non-tech considéraient que
l’informatique c’était magique, et qu’un singe savant suffisait Ã
refaire
google en deux semaines sur une techno qu’ils ne connaissent pas, que je
ne
connais pas, mais qu’ils imposent parce qu’ils ont lu dans un bouquin
que
c’était l’avenir du passé.
Résultat des courses: je me suis fait tiré dessus à boulet rouge pour
mon
stage. Le projet était une catastrophe. Mon “chef” de stage m’a descendu
devant mes profs en hurlant que tout était de ma faute. A quelque chose
près, je pense que ma carrière se serait arrêtée avant de commencer,
seule
l’incohérence entre ce stage et mes résultats scolaires m’ont permis de
continuer mes études comme je l’entendais, les profs étant heureusement
plus
futés qu’on ne veut bien le dire.
Bref: tu as tout intérêt à contacter ton responsable de stage coté IUT
pour
lui exposer la situation. Il te dira très certainement de continuer en
limitant la casse, et de fait je te recommande de batir ton mémoire sur
un
parallèle entre ton vécut et le bouquin qu’on t’a indiqué: je pense
qu’ainsi
tu t’en sortiras bien mieux que moi :slight_smile:

Enjoy.

Guillaume B.> On ne me laisse pas vraiment le choix…

Je te comprends, t’es pas vraiment dans la configuration idéale (-:

Cela dit, il est de ton ressort de tirer des alarmes dès que tu le
peux. Je ne sais pas si tu as des dead lines précises, mais n’hésite
pas à dire dès maintenant “apprendre RoR sur un cas particulier c’est
pas adapté, il me faudra plus de temps que prévu”. Ca fait partie de
ton (futur) métier !

gUI


Pour la santé de votre ordinateur, préférez les logiciels libres.
Lire son mail : http://www.mozilla-europe.org/fr/products/thunderbird/
Browser le web : http://www.mozilla-europe.org/fr/products/firefox/
Suite bureautique : http://fr.openoffice.org/

Le bouquin dont je te parle est très très sérieux, je suis en train de
le
finir, et si je l’avais eu plus tôt entre les mains ça aurait pu
certainement m’aider lors de certains accidents de parcours.

Pour une 20aine d’€, je trouve que c’est un investissement à considérer.

Sinon, les conseils que t’ont donné mes camarades sont très valables.
Dis
franchement à ton supérieur hiérarchique préféré (chef de stage dans
l’entreprise ou référent de ton école) que tu n’es pas assez au point
pour
être autonome sur toutes ces tâches. Ca lui fera prendre conscience de
la
difficulté, et ça lui permettra de prendre une décision pragmatique pour
en
tirer quelque chose -du genre te laisser travailler avec un prototype
d’appli qui ait sa propre base de données, ou te laisser du temps pour
te
familiariser avec la tech-. Surtout, confies-toi à quelqu’un en qui tu
as un
peu confiance, pour ne pas hésiter à dire ce qui ne va pas.

Et rappelles-toi qu’en stage, tu es censé être un “rookie”, pas un
“veteran”.

Guillaume B.> On ne me laisse pas vraiment le choix…

Fabien J.> J’ai en effet commencé comme ça, en créant une base
avec Rails (rails test, script/generate scaffold…) mais j’ai vite
été limité quand même (je n’ai pas réussi à faire en sorte qu’une
personne possède une voiture, personne et voiture étant deux classes
que j’ai développé moi-même) car la quasi totalité des tutoriels que
l’on trouve sur le net traitent de Rails 1, et on me demande de bosser
sur Rails 2…

Michel B.> Tu as tout juste sauf que… Je ne suis même pas
jeune dipômé (le DUT Informatique se déroule en deux ans)
Pour ce qui est du bouquin, ce serait pas sérieux :stuck_out_tongue:

Oui, mais j’ai beau essayer plein de trucs, je n’arrive pas à faire
fonctionner l’application correctement…
En plus, je n’avais jamais vu une ligne de Ruby avant (je sors de
première année de DUT informatique), donc ajouté au fait que Rails est
complexe et compliqué, je suis perdu !

Si tu as un peu de temps, tu peux regarder les screencasts gratuits de
Ryan B. http://railscasts.com/

avantage : les derniers traitent de Rails 2.0 et 2.1
inconvénient : ils ne traitent que des sujets spécifiques

et quelques screencasts plus détaillés pour 5$ (toujours par Ryan B.)
http://www.pragprog.com/screencasts/v-rbar/everyday-active-record

sinon tu as l’inévitable Agile Web D. with Rails en Beta PDF
donc dispo immédiatement pour une 20aine d’euros qui couvre Rails 2
http://www.pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition

Avec ça, tu peux gagner pas mal de temps
bon courage

Zambra> Est-ce à moi d’acheter ces bouquins ?
Non.

Cela dit, si RoR t’interresse et que tu penses t’en resservir, un
investissement perso est toujours possible.

L’entreprise dans laquelle je bosse devait me financer une formation
(faite par une entreprise professionnelle) de quelques jours à mon
arrivée, mais je n’ai eu droit à rien du tout…

Bin ce que tu peux faire, c’est prendre ces qques jours, et
t’autoformer. Ce sera gratos pour ta boite, mais plus long et moins
efficace. En tous cas ce sera toujours mieux que de rester bloquer à
chaque nouvelle
difficulté.
Et puis le sujet de cette auto-formation est tout trouvé : réaliser une
maquette de l’application, en créant la BdD !

Une fois ceci fait, tu auras déjà une bien meilleure idée de RoR, des
difficultés, du temps qu’il te faudra etc… Et à son retour de
vacances, tu auras déjà qqchose à présenter !

gUI