IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ruby on Rails Discussion :

Pb migration de BDD


Sujet :

Ruby on Rails

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 63
    Points : 49
    Points
    49
    Par défaut Pb migration de BDD
    Bonjour!

    J'ai une relation N:N entre mes tables groups et procedures. Je voudrais donc créer une table intermédiaire group_procs qui aurait idGroup et idProc en clés étrangères.

    J'aimerais créer cette nouvelle table dans mon fichier de migration 002, j'y ai donc écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class AjoutTableGroupProcs < ActiveRecord::Migration
      def self.up
         create-table "group_procs", :force => true do |t|
            t.column "idGroup", :smallint
            t.column "idProc", :smallint
      end
     
      def self.down
         drop_table :group_procs
      end
    end
    Je suppose qu'il faut ensuite que je passe dans ma nouvelle version en faisant: rake migrate VERSION=2? Seulement là j'ai plein de "syntax error" (des unexpected ',' et unexpected tSTRING_BEG) qui sortent dans ma console Ruby... Je ne comprends pas, je suis pourtant ce qu'il y a écrit dans mon livre.... et le tSTRING_BEG je ne sais pas ce que c'est...

    Quelqu'un peut m'aider?

  2. #2
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    bonjour

    si c'est bien là un copié / collé de ton code, il te manque des "end" pour fermer ton block

    De plus, pour la table de liaison, il ne faut pas qu'elle ai de champs id en clé primaire
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 63
    Points : 49
    Points
    49
    Par défaut
    Oui, effectivement le copié/collé est pas bon, j'ai bien le end à la fin de mon bloc...

    Pour ma table de liaison comment faire pour qu'il n'y ait pas de champ id? D'après ce que j'ai lu même si je ne l'indique pas dans mon code c'est la méthode create_table() qui l'ajoute automatiquement... Et puis ça veut dire qu'il n'y aura pas de clé primaire pour cette table? Seulement mes 2 clés étrangères idGroup et idProc?

  4. #4
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    si tu veux créer une table sans id, faut faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    create_table :articles, :id => false do |t| 
    ...
    end
    et oui, ta table ne contiendra que tes deux clés étrangères
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 63
    Points : 49
    Points
    49
    Par défaut
    Bon, ok pour l'id mais je n'arrive pas à résoudre mon pb de "syntax error"...

    Je remets mon code au cas où quelque chose vous saute aux yeux...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class AjoutTableGroupProcs < ActiveRecord::Migration
     
      def self.up
    	create-table "group_procs", :id => false, :force => true do |t|
    		t.column "idGroup", :int
    		t.column "idProc", :int
    	end
      end
     
      def self.down
    	drop_table :group_procs
      end
     
    end
    Merci!

  6. #6
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    il me semble bien que c'est :integer, et non pas :int
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Points : 910
    Points
    910
    Par défaut
    create-table ...
    Toute la documentation Ruby on Rails : gotapi.com/rubyrails
    Mes articles :
    > HAML : langage de template pour Ruby on Rails

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 63
    Points : 49
    Points
    49
    Par défaut
    Comme quoi quand on passe la journée sur son code on finit par plus rien voir... ça craint le create-table ... Merci à tous les 2 pour vos réponses et désolé de vous avoir embêté pour un truc aussi simple...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'aide pour un script de migration de BDD
    Par Argetloum dans le forum Langage
    Réponses: 12
    Dernier message: 16/05/2011, 19h44
  2. Migration de BDD d'un serveur à un autre
    Par abdelhamidem dans le forum Administration
    Réponses: 13
    Dernier message: 21/04/2010, 16h00
  3. Migration de bdd sql2000 -> sql2005
    Par powerjojo dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 12/10/2007, 01h13
  4. migration de bdd oracle8i vers mysql4.0
    Par meghaoui dans le forum Oracle
    Réponses: 2
    Dernier message: 25/03/2007, 11h45
  5. migration de bdd
    Par ZeLL dans le forum PostgreSQL
    Réponses: 25
    Dernier message: 20/07/2005, 15h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo