2011-01-09 3 views
1

J'utilise Padrino avec DataMapper et j'essaye de faire une migration pour ajouter une association à un modèle. Par exemple, je commence par ceci:Migration de l'association DataMapper

class User 
    include DataMapper::Resource 

    property :id, Serial 
    property :name, String 
end 

class Post 
    include DataMapper::Resource 

    property :id, Serial 
    property :title, String 
    property :body, Text 
end 

class Comment 
    include DataMapper::Resource 

    property :id, Serial 
    property :name, String 
end 

Et je termine par ce qui suit:

class User 
    include DataMapper::Resource 

    property :id, Serial 
    property :name, String 

    has n, :posts 
end 

class Post 
    include DataMapper::Resource 

    property :id, Serial 
    property :title, String 
    property :body, Text 

    belongs_to :user 
    has n, :comment 
end 

class Comment 
    include DataMapper::Resource 

    property :id, Serial 
    property :name, String 

    belongs_to :post 
end 

J'ai déjà la migration pour créer les trois tables, mais je ne pas ajouter les associations. Quel serait le code pour créer la migration pour les associations?

Répondre

2

DataMapper.auto_upgrade! L'ajout automatique de nouvelles propriétés FK

+0

Merci, je pensais que je devais d'abord ajouter une migration. –

1

auto_upgrade est sympa, mais ne permet pas de retour en arrière incrémentiel.

migration 3, :create_products do 
    up do 
    modify_table :post do 
     add_column :user_id, Integer 
    end 
    modify_table :comment do 
     add_column :post_id, Integer 
    end 
    end 

    down do 
    modify_table :post do 
     drop_column :user_id, Integer 
    end 
    modify_table :comment do 
     drop_column :post_id, Integer 
    end 
    end 
end 

c'est tout.