Ouverture de session

Commentaires récents

Syndication
Flux XML

Utiliser une BDD existante

Utiliser une BDD existante
Posté par fchampreux le Lundi, 16 Novembre, 2009 - 1:20pm. Débuter avec Rails

Bonjour,

Je raffraîchis une appli web en PHP/MySQL en utilisant RoR.
J'ai trouvé dans ce forum comment récupérer le modèle de données en utilisant magic_model (Dr Nic).
J'ai identifié que mes tables devaient contenir de colonnes supplémentaires nommées id, created-at et updated_at pour être dans les normes du framework.
Cependant, j'aimerais comprendre comment est gérée la colonne id ?
(Elle n'est pas initialisée lors de l'insertion d'un enregistrement.)
Est-ce que Rails suppose qu'elle soit en auto-incrément?
Ne serait-il pas plus judicieux, (est-ce que ça a été fait ?), de générer la première migration à partir du modèle de données?

Merci de votre aide !

Fred



[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | sujet précédent | sujet suivant | envoyer par email ]

Options d'affichage des commentaires
Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder" pour activer vos changements.

Sujet: 
Rails avec une BDD existante
Auteur: 
jasperiel
Date: 
Lun, 16/11/2009 - 14:23

Bonjour,

il y a effectivement la possibilité de refaire un schéma et une BDD from scratch, mais ce n'est pas forcément l'approche que j'aurais prise.

Si l'appli est faite pour coexister avec une application ou un SI historique, tu peux utiliser les options d'ActiveRecord pour changer le noms des tables et spécifier la clé primaire des enregistrements, et donc faire du Rails rapidement sans changer la BDD. De toutes façons, tu n'es pas censé faire du SQL à la main donc ça ne t'embêtera qu'une fois.

Et si tu as envie de refaire ta BDD avec la philosophie Rails, tant mieux, mais j'aurais plutôt vu une modification de la BDD, laissant les données en place, en renommant tables et colonnes.

Enfin, quitte à tout refaire from scratch, j'aurais fait des outils d'export et d'import automatique.

Sinon, pour tes clés, l'ID est tout simplement la clé primaire. Oui, il vaut mieux qu'elle soit auto-incrémentée. Mais je suppose que ton appli PHP avait aussi une clé primaire et qu'il y avait des règles d'unicité, donc toutes les approches ci-dessus n'auraient pas causé de souci.

Dernière chose : created_at et updated_at ne sont pas "obligatoires".
À toi de voir si tu en as besoin.

Bon courage et bon taff,


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
Rails avec une BDD existante
Auteur: 
fchampreux
Date: 
Lun, 16/11/2009 - 15:06

Merci pour ton aide et tes conseils, je crois effectivement que je vais approfondir le côté ActiveRecord.
Dans l'appli d'origine, l'ID était incrémenté par le code PHP et non dans MySQL, d'où ma question sur le comportement par défaut de Rails.

Meilleures salutations,

Fred


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Nouveaux liens

Qui est en ligne
Il y a actuellement 1 utilisateur et 15 invités en ligne.

railsfrance.org - communauté francophone des utilisateurs de Ruby on Rails
[ Propulsé par Drupal ]