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 :

rails 3.0.3 migration


Sujet :

Ruby on Rails

  1. #1
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut rails 3.0.3 migration
    Bonsoir

    voici mon problème : j'ai crée une base de données en utilisant rake. Jusque là pas de problème.
    Puis j'ai crée mon models users

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rails generate model users
    J'ai donc un fichier généré dans le répertoire db/migrate qui s'appelle 001_create_users.rb.

    Jusque là pas de surprise.
    puis j'édite ce fichier qui contient ma classe migration
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class CreateUsers < ActiveRecords::Migration
      def self.up
         create_table :users do |t|
            t.string :name
         end
      end
     
      def self.down
        drop_table :users;
      end
    end
    j'exécute la migration en utilisant la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rake db:migrate 001_create_users.rb
    et je constate que la table est crée mais que j'ai un message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ...
    CreateUsers: migrating 
    create_table (:users)
     
    ...
     
    rake aborted! don't know how to build task  '001_create_users.rb'
    /usr/local/ruby/lib/ruby/1.9.1/rake.db..
    Est-ce que quelqu'un aurait une idée de la signification de ce message d'erreur ?

    Puis j'ai une autre question : quand je lance la commande


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rake db:migrate VERSION=001
    j'ai également le même message d'erreur mais sans la trace de création de la table. Là aussi si quelqu'un a une explication je suis preneur.

    Merci d'avance

    PS: environnement ubuntu ,ruby 1.9.2, rails 3.0.3

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rake db:migrate 001_create_users.rb
    Il exécute "rake db:migrate" et ensuite, il cherche à exécuter la commande suivante : "001_create_users.rb" et là il comprend pas.
    Le nom du fichier n'est pas un argument reconnu par rake.
    (tu peux par contre utiliser STEP, VERSION, etc...)

    ENLEVE CET AFFREUX ";" au bout de la ligne !

    essaye de faire simple pour commencer :
    "rake db:migrate" tout simplement et "rake db:rollback" pour revenir à la position de départ.

  3. #3
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    Salut

    merci d'avoir répondu à mon post

    je me suis trompé pour le ";" en fait j'ai eu un mauvais réflexe par rapport à d'autre language :-)

    Je veux bien faire simple mais comment rails sait quelle version utilisée quand j'ai plusieurs fichiers de migration et que j'exécute uniquement

    de plus quand je fais

    il ne se passe rien au niveau de la base alors que je m'attends à une suppression de la table Au niveau de l'affichage je n'ai aucun message spécifique

    j'avoue que je suis perdu

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    migre jusque la dernière migration.
    revient de 1 migration en arrière.

    Dans le cas où tu n'as que 1 migration (dans ton exemple), tu peux donc faire ainsi une marche avant et une marche arrière, afin de vérifier que la migration n'a pas d'erreur de syntaxe, et qu'elle fonctionne bien dans les 2 sens.
    Je te conseille de tester ça, pour comprendre le fonctionnement.
    Une fois ok, tu peux tester avec plusieurs fichiers, migrer jusqu'à une certaine version (avec VERSION) ou de faire des bonds en avant ou en arrière (avec STEP), etc...
    Généralement, on n'utilise que la 1ere commande ("rake db:migrate") pour avoir le projet à jour.
    Même si c'est important que les migrations fonctionnent dans les 2 sens, c'est dangereux de revenir en arrière. Si tu as créé une table en trop, il vaut mieux la supprimer avec une nouvelle migration, plutôt que de revenir en arrière. Enfin, ça dépend si tu travailles seul ou en équipe, aussi...

  5. #5
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    OK merci je commence à comprendre
    Juste encore une question stp .
    Quand tu développe tes applications rails ou ruby avec une BDD, est ce que dans ton expérience au quotidien tu utilises les scripts SQL ou bien plutôt les migrations ?
    Quel est le plus facilement maintenable ?

    merci encore

  6. #6
    LXS
    LXS est déconnecté
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 106
    Points : 137
    Points
    137
    Par défaut
    Les migrations sont la solution a beaucoup de problemes:
    • Historisation des changements effectues sur la base (partage simple en equipe
    • Deploiement facilite
    • ...


    Il me serait tres difficile de ne plus les utiliser aujourd'hui.

  7. #7
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    merci à tout les deux pour vos retours
    j'ai une autre question sur les URLS et les controlleurs mais ça fait partie d'un autre poste

  8. #8
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    est ce que dans ton expérience au quotidien tu utilises les scripts SQL ou bien plutôt les migrations ?
    Je fais tout au maximum avec rake (rake db:create, rake db:migrate, rake db:reset, ...)
    Le sql je n'utilise que pour les dumps (mysqldump renvoit un script sql), et je me contente de l'utiliser tel quel.

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

Discussions similaires

  1. migration projet rails sur linux from windows
    Par horkets dans le forum Ruby on Rails
    Réponses: 15
    Dernier message: 14/02/2008, 14h44
  2. Pb migration Access / SQL server
    Par yoyo dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 25/04/2005, 10h39
  3. [Kylix] Migration delphi -> kylix
    Par Christian dans le forum EDI
    Réponses: 1
    Dernier message: 03/04/2002, 22h50

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