2010-04-09 16 views
0

I exécuter un script/Générer un modèle requêteproblème avec la migration d'un modèle en ruby ​​

modifier query.rb dans les modèles ..

class Query < ActiveRecord::Base #I even tried Migrations instead of Base 
    def sef.up 
    create table :queries do|t| 
     t.string :name 
    end 
    end 

    def self.down 
    drop_table :queries 
    end 
end 

, exécutez rake db: migrer.

et ce que je vois dans db est le suivant:

mysql> desc queries; 
+------------+----------+------+-----+---------+----------------+ 
| Field  | Type  | Null | Key | Default | Extra   | 
+------------+----------+------+-----+---------+----------------+ 
| id   | int(11) | NO | PRI | NULL | auto_increment | 
| created_at | datetime | YES |  | NULL |    | 
| updated_at | datetime | YES |  | NULL |    | 
+------------+----------+------+-----+---------+----------------+ 

Où se trouve le champ "nom"?

AIDE! À votre santé !

+0

Avez-vous essayé de redémarrer votre serveur MySQL pour forcer information_schema à être mis à jour? – meagar

Répondre

2

Ce que vous voulez est script/generate migration your_migration_name.

Edit # 1

Je vais vous expliquer mieux:

En fait, lorsque vous exécutez script/generate model query certains fichiers ont été créés, y compris models/query.rb et db/migrate/XXX_create_query.rb. Pour créer la table queries vous devez modifier le deuxième fichier (db/migrate/XXX_create_query.rb) et insérez le code affiché:

class CreateQueries < ActiveRecord::Migration 
    def self.up 
     create_table :queries do |t| 
     t.string :name 
     end 
    end 

    def self.down 
    drop_table :queries 
    end 
end 

puis exécutez rake db:migrate.

Edit # 2

Comme JacobM a, comme vous avez déjà rake db:migrate, maintenant il vous suffit de créer une autre migration

script/generate migration add_name_column_to_queries_table

modifier le fichier db/migrate/XXX_add_name_column_to_queries_table.rb pour insérer votre nouvelle colonne name puis exécutez à nouveau rake db:migrate.

+0

Merci beaucoup! – Shreyas

1

Vos données personnelles ne vont pas dans votre modèle, elles vont dans votre migration. Lorsque vous avez exécuté script/générer un modèle, en plus du fichier query.rb dans models, vous auriez également obtenu un fichier XXX_add_queries.rb dans db/migrations. C'est le fichier que vous devez modifier pour ajouter un autre champ. Cependant, si vous avez déjà exécuté rake db: migrate, vous devrez ajouter une nouvelle migration pour ajouter votre nouveau champ (script/generate migration add_name_to_queries), éditer le nouveau fichier de migration et relancer db: migrate.

+0

Merci beaucoup! – Shreyas