scm: db: model: add parent/child relation for changesets (#5501)

Contributed by Jan Topiński.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@7710 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Toshi MARUYAMA 2011-11-03 08:01:41 +00:00
parent e300188982
commit ef1223dd3a
2 changed files with 22 additions and 0 deletions

View File

@ -22,6 +22,14 @@ class Changeset < ActiveRecord::Base
belongs_to :user belongs_to :user
has_many :changes, :dependent => :delete_all has_many :changes, :dependent => :delete_all
has_and_belongs_to_many :issues has_and_belongs_to_many :issues
has_and_belongs_to_many :parents,
:class_name => "Changeset",
:join_table => "#{table_name_prefix}changeset_parents#{table_name_suffix}",
:association_foreign_key => 'parent_id', :foreign_key => 'changeset_id'
has_and_belongs_to_many :children,
:class_name => "Changeset",
:join_table => "#{table_name_prefix}changeset_parents#{table_name_suffix}",
:association_foreign_key => 'changeset_id', :foreign_key => 'parent_id'
acts_as_event :title => Proc.new {|o| "#{l(:label_revision)} #{o.format_identifier}" + (o.short_comments.blank? ? '' : (': ' + o.short_comments))}, acts_as_event :title => Proc.new {|o| "#{l(:label_revision)} #{o.format_identifier}" + (o.short_comments.blank? ? '' : (': ' + o.short_comments))},
:description => :long_comments, :description => :long_comments,

View File

@ -0,0 +1,14 @@
class CreateChangesetParents < ActiveRecord::Migration
def self.up
create_table :changeset_parents, :id => false do |t|
t.column :changeset_id, :integer, :null => false
t.column :parent_id, :integer, :null => false
end
add_index :changeset_parents, [:changeset_id], :unique => false, :name => :changeset_parents_changeset_ids
add_index :changeset_parents, [:parent_id], :unique => false, :name => :changeset_parents_parent_ids
end
def self.down
drop_table :changeset_parents
end
end