DataMapper Ассоциация Миграции - PullRequest
1 голос
/ 09 января 2011

Я использую Padrino с 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

И я заканчиваю следующим:

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

У меня уже есть миграция для создания трех таблиц, но я не для добавленияассоциации.Каким будет код для создания миграции для ассоциаций?

Ответы [ 2 ]

2 голосов
/ 10 января 2011

DataMapper.auto_upgrade!добавит новые свойства FK

1 голос
/ 25 июля 2011

auto_upgrade - это хорошо, но не позволяет сделать шаг назад.

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

вот и все.

...