Question

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

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 le font pas pour ajouter les associations. Qu'est-ce que le code soit pour la création de la migration pour les associations?

Était-ce utile?

La solution

DataMapper.auto_upgrade! ajoutera de nouvelles propriétés FK

Autres conseils

auto_upgrade est agréable, mais ne permettra pas à pas en arrière supplémentaire.

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top