Commit f8da7f59f1b12f792cbcdb57ce5dba0c4672a11a
- Date: Wed Apr 30 13:36:44 +0000 2008
- Committer: mtkd (mtkd@prj2.com)
- Author: mtkd (mtkd@prj2.com)
- Commit SHA1: f8da7f59f1b12f792cbcdb57ce5dba0c4672a11a
- Tree SHA1: f467cdbd017ac9d59da82777f557e190a423b3da
- db/migrate/003_create_repositories.rb 23 +++++++++++++++++++++++
- vendor/plugins/acts_as_taggable_on_steroids/lib/tag_list.rb 85 -------------------------------------------------------------------------------------
- db/migrate/004_create_committerships.rb 16 ++++++++++++++++
- db/migrate/007_create_comments.rb 21 +++++++++++++++++++++
- db/migrate/013_create_messages.rb 20 ++++++++++++++++++++
- db/migrate/008_create_permissions.rb 17 -----------------
- vendor/plugins/acts_as_taggable_on_steroids/test/fixtures/special_post.rb 2 --
- db/migrate/001_create_users.rb 9 -++++++++
- db/migrate/021_create_merge_requests.rb 21 ---------------------
- vendor/plugins/acts_as_taggable_on_steroids/CHANGELOG 154 ----------------------------------------------------------------------------------------------------------------------------------------------------------
- db/migrate/009_add_more_info_to_projects.rb 15 ---------------
- vendor/plugins/acts_as_taggable_on_steroids/test/fixtures/subscription.rb 4 ----
- db/migrate/411_gitlab_adds_for_users.rb 11 -----------
- vendor/plugins/acts_as_taggable_on_steroids/lib/acts_as_taggable.rb 219 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- db/migrate/019_create_comments.rb 18 ------------------
- db/migrate/006_add_slug_to_projects.rb 10 ----------
- db/migrate/010_create_events.rb 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
- db/migrate/405_create_messages.rb 20 --------------------
- vendor/plugins/acts_as_taggable_on_steroids/test/tagging_test.rb 13 -------------
- vendor/plugins/acts_as_taggable_on_steroids/test/fixtures/user.rb 7 -------
- db/migrate/003_rename_project_name_to_title.rb 9 ---------
- vendor/plugins/acts_as_taggable_on_steroids/test/acts_as_taggable_test.rb 347 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- db/migrate/016_create_tasks.rb 17 -----------------
- db/migrate/410_gitlab_adds_for_projects.rb 37 -------------------------------------
- vendor/plugins/acts_as_taggable_on_steroids/lib/tag_counts_extension.rb 3 ---
- db/migrate/004_create_repositories.rb 18 ------------------
- db/migrate/011_add_ready_status_to_repositories.rb 10 ----------
- db/migrate/020_add_project_id_to_comments.rb 15 ---------------
- vendor/plugins/acts_as_taggable_on_steroids/test/fixtures/post.rb 7 -------
- db/migrate/010_create_ssh_keys.rb 19 -------------------
- vendor/plugins/acts_as_taggable_on_steroids/generators/acts_as_taggable_migration/acts_as_taggable_migration_generator.rb 11 -----------
- db/migrate/022_add_branches_to_merge_requests.rb 11 -----------
- vendor/plugins/acts_as_taggable_on_steroids/test/fixtures/magazine.rb 3 ---
- db/migrate/018_add_url_to_users.rb 9 ---------
- db/migrate/009_create_wikis.rb 26 ++++++++++++++++++++++++++
- db/migrate/401_create_events.rb 50 --------------------------------------------------
- db/migrate/005_add_ssh_key_to_users.rb 9 ---------
- db/migrate/013_add_fullname_to_users.rb 9 ---------
- vendor/plugins/acts_as_taggable_on_steroids/lib/tag.rb 26 --------------------------
- vendor/plugins/acts_as_taggable_on_steroids/test/tag_test.rb 34 ----------------------------------
- db/migrate/012_acts_as_taggable_migration.rb 27 ---------------------------
- vendor/plugins/acts_as_taggable_on_steroids/test/abstract_unit.rb 97 -------------------------------------------------------------------------------------------------
- vendor/plugins/acts_as_taggable_on_steroids/lib/tags_helper.rb 13 -------------
- vendor/plugins/acts_as_taggable_on_steroids/test/tag_list_test.rb 101 -----------------------------------------------------------------------------------------------------
- vendor/plugins/acts_as_taggable_on_steroids/test/fixtures/tags.yml 19 -------------------
- vendor/plugins/acts_as_taggable_on_steroids/Rakefile 22 ----------------------
- db/migrate/008_create_merge_requests.rb 23 +++++++++++++++++++++++
- db/migrate/407_create_tickets.rb 75 ---------------------------------------------------------------------------
- db/migrate/402_create_journals.rb 93 ---------------------------------------------------------------------------------------------
- vendor/plugins/acts_as_taggable_on_steroids/test/tags_helper_test.rb 28 ----------------------------
- vendor/plugins/acts_as_taggable_on_steroids/test/fixtures/photos.yml 24 ------------------------
- db/migrate/014_create_articles.rb 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- vendor/plugins/acts_as_taggable_on_steroids/test/fixtures/photo.rb 8 --------
- db/migrate/015_add_ready_to_ssh_key.rb 9 ---------
- db/migrate/015_create_tickets.rb 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- db/migrate/403_create_settings.rb 34 ----------------------------------
- vendor/plugins/acts_as_taggable_on_steroids/generators/acts_as_taggable_migration/templates/migration.rb 26 --------------------------
- vendor/plugins/acts_as_taggable_on_steroids/test/database.yml 10 ----------
- vendor/plugins/acts_as_taggable_on_steroids/test/schema.rb 37 -------------------------------------
- config/initializers/class_settings.rb 1 -
- app/models/project.rb 17 -----------------
- vendor/plugins/acts_as_taggable_on_steroids/init.rb 1 -
- db/migrate/006_create_tasks.rb 18 ++++++++++++++++++
- db/migrate/404_create_wikis.rb 26 --------------------------
- db/migrate/012_create_settings.rb 34 ++++++++++++++++++++++++++++++++++
- db/migrate/011_create_journals.rb 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- db/migrate/014_rename_permissions_to_committerships.rb 9 ---------
- db/migrate/406_create_articles.rb 89 -----------------------------------------------------------------------------------------
- db/migrate/412_gitlab_adds_for_repositories.rb 10 ----------
- db/migrate/002_create_projects.rb 38 ------++++++++++++++++++++++++++++++++
- vendor/plugins/acts_as_taggable_on_steroids/lib/tagging.rb 10 ----------
- vendor/plugins/acts_as_taggable_on_steroids/test/fixtures/subscriptions.yml 3 ---
- vendor/plugins/acts_as_taggable_on_steroids/README 142 ----------------------------------------------------------------------------------------------------------------------------------------------
- vendor/plugins/acts_as_taggable_on_steroids/test/fixtures/magazines.yml 7 -------
- vendor/plugins/acts_as_taggable_on_steroids/test/fixtures/users.yml 7 -------
- vendor/plugins/acts_as_taggable_on_steroids/test/fixtures/taggings.yml 149 -----------------------------------------------------------------------------------------------------------------------------------------------------
- db/migrate/005_create_ssh_keys.rb 16 ++++++++++++++++
- db/migrate/007_add_mainline_to_projects.rb 12 ------------
- vendor/plugins/acts_as_taggable_on_steroids/MIT-LICENSE 20 --------------------
- vendor/plugins/acts_as_taggable_on_steroids/test/fixtures/posts.yml 34 ----------------------------------
- db/migrate/017_add_target_id_to_tasks.rb 9 ---------
Commit diff
- Diff rendering mode:
- inline
- side by side
app/models/project.rb
|   | ||
| 1 | 1 | class Project < ActiveRecord::Base |
| 2 | ||
| 3 | ||
| 4 | 2 | belongs_to :user |
| 5 | 3 | has_many :comments, :dependent => :destroy |
| 6 | 4 | has_many :repositories, :order => "repositories.mainline desc, repositories.created_at asc", |
| … | … | |
| 13 | 13 | has_many :users, :through => :members |
| 14 | 14 | has_many :articles |
| 15 | 15 | |
| 16 | ||
| 17 | ||
| 18 | ||
| 19 | ||
| 20 | ||
| 21 | ||
| 22 | ||
| 23 | ||
| 24 | ||
| 25 | ||
| 26 | ||
| 27 | ||
| 28 | ||
| 29 | ||
| 30 | ||
| 31 | 16 | URL_FORMAT_RE = /^(http|https|nntp):\/\//.freeze |
| 32 | 17 | validates_presence_of :title, :user_id, :slug |
| 33 | 18 | validates_uniqueness_of :slug, :case_sensitive => false |
| toggle raw diff | ||
config/initializers/class_settings.rb
|   | ||
| 0 | ||
| toggle raw diff | ||
db/migrate/001_create_users.rb
|   | ||
| 9 | 9 | t.column :updated_at, :datetime |
| 10 | 10 | t.column :remember_token, :string |
| 11 | 11 | t.column :remember_token_expires_at, :datetime |
| 12 | ||
| 12 | t.integer :ssh_key_id, :references => nil | |
| 13 | t.text :ssh_key | |
| 14 | t.string :fullname | |
| 15 | t.string :slug | |
| 16 | t.string :url | |
| 13 | 17 | t.column :activation_code, :string, :limit => 40 |
| 14 | 18 | t.column :activated_at, :datetime |
| 19 | t.timestamps | |
| 15 | 20 | end |
| 16 | 21 | |
| 22 | add_index :users, :id | |
| 17 | 23 | add_index :users, :login |
| 18 | 24 | add_index :users, :email |
| 25 | add_index :users, :slug | |
| 19 | 26 | end |
| 20 | 27 | |
| 21 | 28 | def self.down |
| toggle raw diff | ||
db/migrate/002_create_projects.rb
|   | ||
| 1 | 1 | class CreateProjects < ActiveRecord::Migration |
| 2 | ||
| 2 | 3 | def self.up |
| 3 | 4 | create_table :projects do |t| |
| 4 | ||
| 5 | t.column :title, :string | |
| 5 | 6 | t.column :description, :text |
| 6 | ||
| 7 | ||
| 8 | ||
| 7 | t.column :user_id, :integer | |
| 8 | t.string :slug, :unique => true | |
| 9 | t.string :license | |
| 10 | t.string :home_url | |
| 11 | t.string :mailinglist_url | |
| 12 | t.string :bugtracker_url | |
| 13 | t.column :audience, :enum, :limit => [:public, :members_only], :default => :public | |
| 14 | t.column :status, :enum, :limit => [:active, :inactive], :default => :active | |
| 15 | t.column :life_cycle, :enum, :limit => [:planning, :pre_alpha, :alpha, :beta, :stable, :mature_frozen, :other], :default => :pre_alpha | |
| 16 | t.column :os, :enum, :limit => [:mac_os, :win32, :linux, :independent, :other, :notapplicable], :default => :independent | |
| 17 | t.column :platform, :enum, :limit => [:ruby, :rails, :dotnet, :python, :php, :other, :notapplicable], :default => :rails | |
| 18 | t.integer :views, :default => 0 | |
| 19 | t.integer :wiki_id, :references => nil | |
| 20 | t.timestamps | |
| 9 | 21 | end |
| 10 | ||
| 11 | ||
| 22 | add_index :projects, :id | |
| 23 | add_index :projects, :title | |
| 12 | 24 | add_index :projects, :user_id |
| 25 | add_index :projects, :slug | |
| 26 | add_index :projects, [:audience, :status] | |
| 27 | ||
| 28 | # | |
| 29 | create_table :members do |t| | |
| 30 | t.column :accesslevel, :enum, :limit => [:readonly, :modify, :admin], :default => :modify | |
| 31 | t.integer :project_id, :null => false | |
| 32 | t.integer :user_id, :null => false | |
| 33 | t.timestamps | |
| 34 | end | |
| 35 | add_index :members, [:id] | |
| 36 | add_index :members, [:project_id] | |
| 37 | add_index :members, [:user_id] | |
| 13 | 38 | end |
| 14 | 39 | |
| 15 | 40 | def self.down |
| 41 | drop_table :members | |
| 16 | 42 | drop_table :projects |
| 17 | 43 | end |
| 18 | 44 | end |
| toggle raw diff | ||
db/migrate/003_create_repositories.rb
|   | ||
| 1 | class CreateRepositories < ActiveRecord::Migration | |
| 2 | def self.up | |
| 3 | create_table :repositories do |t| | |
| 4 | t.string :name | |
| 5 | t.string :description | |
| 6 | t.integer :project_id, :references => nil | |
| 7 | t.integer :user_id, :references => nil | |
| 8 | t.boolean :mainline, :default => false | |
| 9 | t.integer :parent_id, :references => nil | |
| 10 | t.boolean :ready, :default => false | |
| 11 | t.timestamps | |
| 12 | end | |
| 13 | add_index :repositories, :id | |
| 14 | add_index :repositories, :name | |
| 15 | add_index :repositories, :project_id | |
| 16 | add_index :repositories, :user_id | |
| 17 | add_index :repositories, :parent_id | |
| 18 | end | |
| 19 | ||
| 20 | def self.down | |
| 21 | drop_table :repositories | |
| 22 | end | |
| 23 | end | |
| toggle raw diff | ||
db/migrate/003_rename_project_name_to_title.rb
|   | ||
| 0 | ||
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | ||
| toggle raw diff | ||
db/migrate/004_create_committerships.rb
|   | ||
| 1 | class CreateCommitterships < ActiveRecord::Migration | |
| 2 | def self.up | |
| 3 | create_table :committerships do |t| | |
| 4 | t.integer :user_id | |
| 5 | t.integer :repository_id | |
| 6 | t.integer :kind, :default => 2 | |
| 7 | t.timestamps | |
| 8 | end | |
| 9 | add_index :committerships, :user_id | |
| 10 | add_index :committerships, :repository_id | |
| 11 | end | |
| 12 | ||
| 13 | def self.down | |
| 14 | drop_table :committerships | |
| 15 | end | |
| 16 | end | |
| toggle raw diff | ||
db/migrate/004_create_repositories.rb
|   | ||
| 0 | ||
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | ||
| 9 | ||
| 10 | ||
| 11 | ||
| 12 | ||
| 13 | ||
| 14 | ||
| 15 | ||
| 16 | ||
| 17 | ||
| toggle raw diff | ||
db/migrate/005_add_ssh_key_to_users.rb
|   | ||
| 0 | ||
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | ||
| toggle raw diff | ||
db/migrate/005_create_ssh_keys.rb
|   | ||
| 1 | class CreateSshKeys < ActiveRecord::Migration | |
| 2 | def self.up | |
| 3 | create_table :ssh_keys do |t| | |
| 4 | t.integer :user_id | |
| 5 | t.boolean :ready, :default => false | |
| 6 | t.text :key | |
| 7 | t.timestamps | |
| 8 | end | |
| 9 | add_index :ssh_keys, :user_id | |
| 10 | add_index :users, :ssh_key_id | |
| 11 | end | |
| 12 | ||
| 13 | def self.down | |
| 14 | drop_table :ssh_keys | |
| 15 | end | |
| 16 | end | |
| toggle raw diff | ||
db/migrate/006_add_slug_to_projects.rb
|   | ||
| 0 | ||
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | ||
| 9 | ||
| toggle raw diff | ||
db/migrate/006_create_tasks.rb
|   | ||
| 1 | class CreateTasks < ActiveRecord::Migration | |
| 2 | def self.up | |
| 3 | create_table :tasks do |t| | |
| 4 | t.string :target_class | |
| 5 | t.string :command | |
| 6 | t.text :arguments | |
| 7 | t.boolean :performed, :default => false | |
| 8 | t.datetime :performed_at | |
| 9 | t.integer :target_id, :references => nil | |
| 10 | t.timestamps | |
| 11 | end | |
| 12 | add_index :tasks, :performed | |
| 13 | end | |
| 14 | ||
| 15 | def self.down | |
| 16 | drop_table :tasks | |
| 17 | end | |
| 18 | end | |
| toggle raw diff | ||
db/migrate/007_add_mainline_to_projects.rb
|   | ||
| 0 | ||
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | ||
| 9 | ||
| 10 | ||
| 11 | ||
| toggle raw diff | ||
db/migrate/007_create_comments.rb
|   | ||
| 1 | class CreateComments < ActiveRecord::Migration | |
| 2 | def self.up | |
| 3 | create_table :comments do |t| | |
| 4 | t.integer :user_id, :null => false | |
| 5 | t.integer :repository_id, :null => false | |
| 6 | t.string :sha1, :null => true | |
| 7 | t.text :body | |
| 8 | t.integer :project_id | |
| 9 | t.timestamps | |
| 10 | end | |
| 11 | add_index :comments, :id | |
| 12 | add_index :comments, :user_id | |
| 13 | add_index :comments, :repository_id | |
| 14 | add_index :comments, :sha1 | |
| 15 | add_index :comments, :project_id | |
| 16 | end | |
| 17 | ||
| 18 | def self.down | |
| 19 | drop_table :comments | |
| 20 | end | |
| 21 | end | |
| toggle raw diff | ||
db/migrate/008_create_merge_requests.rb
|   | ||
| 1 | class CreateMergeRequests < ActiveRecord::Migration | |
| 2 | def self.up | |
| 3 | create_table :merge_requests do |t| | |
| 4 | t.integer :user_id, :references => nil | |
| 5 | t.integer :source_repository_id, :references => nil | |
| 6 | t.integer :target_repository_id, :references => nil | |
| 7 | t.text :proposal | |
| 8 | t.string :sha_snapshot | |
| 9 | t.integer :status, :default => 0 | |
| 10 | t.string :source_branch | |
| 11 | t.string :target_branch | |
| 12 | t.timestamps | |
| 13 | end | |
| 14 | add_index :merge_requests, :user_id | |
| 15 | add_index :merge_requests, :source_repository_id | |
| 16 | add_index :merge_requests, :target_repository_id | |
| 17 | add_index :merge_requests, :status | |
| 18 | end | |
| 19 | ||
| 20 | def self.down | |
| 21 | drop_table :merge_requests | |
| 22 | end | |
| 23 | end | |
| toggle raw diff | ||
db/migrate/008_create_permissions.rb
|   | ||
| 0 | ||
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | ||
| 9 | ||
| 10 | ||
| 11 | ||
| 12 | ||
| 13 | ||
| 14 | ||
| 15 | ||
| 16 | ||
| toggle raw diff | ||
db/migrate/009_add_more_info_to_projects.rb
|   | ||
| 0 | ||
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | ||
| 9 | ||
| 10 | ||
| 11 | ||
| 12 | ||
| 13 | ||
| 14 | ||
| toggle raw diff | ||
db/migrate/009_create_wikis.rb
|   | ||
| 1 | class CreateWikis < ActiveRecord::Migration | |
| 2 | ||
| 3 | def self.up | |
| 4 | ||
| 5 | create_table :wikis do |t| | |
| 6 | t.string :title, :default => "", :null => false | |
| 7 | t.string :slug, :unique => true | |
| 8 | t.text :page | |
| 9 | t.column :status, :enum, :limit => [:draft, :published, :test, :deleted], :default => :draft | |
| 10 | t.column :format, :enum, :limit => [:markdown, :monospace, :image], :default => :markdown | |
| 11 | t.integer :project_id, :null => true | |
| 12 | # only allow project members to see it | |
| 13 | #FIXME possibly redundant - would you ever want to hide a page (outside of the normal project audience setting?) | |
| 14 | t.column :audience, :enum, :limit => [:public, :members], :default => :public | |
| 15 | t.integer :views, :default => 0 | |
| 16 | t.timestamps | |
| 17 | end | |
| 18 | ||
| 19 | end | |
| 20 | ||
| 21 | def self.down | |
| 22 | drop_table :wikis | |
| 23 | end | |
| 24 | ||
| 25 | end | |
| 26 | ||
| toggle raw diff | ||
db/migrate/010_create_events.rb
|   | ||
| 1 | ||
| 2 | # Journal - changes to models like Wiki, Article, Ticket | |
| 3 | # Repository - change or repository event (commit, clone etc.) | |
| 4 | # Message - messages posted by developers (different to a commit message, and different to an article) | |
| 5 | # Error - error log messages | |
| 6 | # Debug - debug log messages | |
| 7 | # System - system log messages | |
| 8 | # | |
| 9 | # Note: Journal events table in CreateJournal | |
| 10 | ||
| 11 | ||
| 12 | class CreateEvents < ActiveRecord::Migration | |
| 13 | ||
| 14 | def self.up | |
| 15 | create_table :events do |t| | |
| 16 | t.column :entry_type, :enum, :limit => [:journal, :repository, :message, :error, :system, :debug] | |
| 17 | t.integer :project_id | |
| 18 | t.integer :user_id | |
| 19 | t.integer :entry_id, :references => nil | |
| 20 | t.timestamps | |
| 21 | end | |
| 22 | add_index :events, [:id] | |
| 23 | add_index :events, [:project_id] | |
| 24 | add_index :events, [:user_id] | |
| 25 | add_index :events, [:entry_type] | |
| 26 | ||
| 27 | create_table :debug_events do |t| | |
| 28 | t.string :summary | |
| 29 | end | |
| 30 | add_index :debug_events, [:id] | |
| 31 | ||
| 32 | create_table :system_events do |t| | |
| 33 | t.string :summary | |
| 34 | end | |
| 35 | add_index :system_events, [:id] | |
| 36 | ||
| 37 | create_table :error_events do |t| | |
| 38 | t.string :summary | |
| 39 | end | |
| 40 | add_index :error_events, [:id] | |
| 41 | end | |
| 42 | ||
| 43 | ||
| 44 | def self.down | |
| 45 | drop_table :error_events | |
| 46 | drop_table :system_events | |
| 47 | drop_table :debug_events | |
| 48 | drop_table :events | |
| 49 | end | |
| 50 | end | |
| toggle raw diff | ||
db/migrate/010_create_ssh_keys.rb
|   | ||
| 0 | ||
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | ||
| 9 | ||
| 10 | ||
| 11 | ||
| 12 | ||
| 13 | ||
| 14 | ||
| 15 | ||
| 16 | ||
| 17 | ||
| 18 | ||
| toggle raw diff | ||
db/migrate/011_add_ready_status_to_repositories.rb
|   | ||
| 0 | ||
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
| 8 | ||
| 9 | ||
| toggle raw diff | ||
db/migrate/011_create_journals.rb
|   | ||
| 1 | # | |
| 2 | # The journal keeps a log of changed fields (that need journalling) | |
| 3 | # | |
| 4 | # history queries needed: | |
| 5 | # history of a row - select from journal where model_type = :article and row_id = 1 | |
| 6 | # history of a specific column in a row - select from journal where model_type = :article and row_id = 1 and changes.model_column = :price | |
| 7 | # history of all changes by user or ip | |
| 8 | # history last 100 changes | |
| 9 | # | |
| 10 | # Issues: | |
| 11 | # How do we handle new columns created on existing rows | |
| 12 | # | |
| 13 | class CreateJournals < ActiveRecord::Migration | |
| 14 | ||
| 15 | def self.up | |
| 16 | ||
| 17 | # one journal entry for every create or update action | |
| 18 | create_table :journals do |t| | |
| 19 | t.column :model_type, :enum, :limit => [:article, :ticket, :wiki, :comment] | |
| 20 | t.string :summary | |
| 21 | t.integer :row_id, :references => nil # key back to the owner (e.g. article_id) | |
| 22 | t.column :action, :enum, :limit => [:create, :update] | |
| 23 | t.integer :user_id | |
| 24 | t.string :ip | |
| 25 | t.timestamps | |
| 26 | end | |
| 27 | add_index :journals, [:id, :model_type, :row_id] | |
| 28 | add_index :journals, [:user_id] | |
| 29 | add_index :journals, [:ip] | |
| 30 | ||
| 31 | # one change entry for every field changed | |
| 32 | create_table :changes do |t| | |
| 33 | t.integer :journal_id | |
| 34 | t.string :model_column # the name of the column that changed | |
| 35 | t.column :datatype, :enum, :limit => [:string, :text, :integer, :enum, :datetime, :boolean] | |
| 36 | t.integer :data_id, :references => nil | |
| 37 | end | |
| 38 | add_index :changes, [:id] | |
| 39 | add_index :changes, [:journal_id, :model_column] | |
| 40 | ||
| 41 | create_table :changed_strings do |t| | |
| 42 | t.string :data | |
| 43 | end | |
| 44 | add_index :changed_strings, [:id] | |
| 45 | ||
| 46 | create_table :changed_texts do |t| | |
| 47 | t.text :data | |
| 48 | end | |
| 49 | add_index :changed_texts, [:id] | |
| 50 | ||
| 51 | create_table :changed_integers do |t| | |
| 52 | t.integer :data | |
| 53 | end | |
| 54 | add_index :changed_integers, [:id] | |
| 55 | ||
| 56 | create_table :changed_floats do |t| | |
| 57 | t.float :data | |
| 58 | end | |
| 59 | add_index :changed_floats, [:id] | |
| 60 | ||
| 61 | create_table :changed_datetimes do |t| | |
| 62 | t.integer :data | |
| 63 | end | |
| 64 | add_index :changed_datetimes, [:id] | |
| 65 | ||
| 66 | create_table :changed_booleans do |t| | |
| 67 | t.boolean :data | |
| 68 | end | |
| 69 | add_index :changed_booleans, [:id] | |
| 70 | ||
| 71 | create_table :changed_enums do |t| | |
| 72 | t.string :data | |
| 73 | end | |
| 74 | add_index :changed_enums, [:id] | |
| 75 | ||
| 76 | end | |
| 77 | ||
| 78 | def self.down | |
| 79 | drop_table :changed_enums | |
| 80 | drop_table :changed_booleans | |
| 81 | drop_table :changed_datetimes | |
| 82 | drop_table :changed_floats | |
| 83 | drop_table :changed_integers | |
| 84 | drop_table :changed_texts | |
| 85 | drop_table :changed_strings | |
| 86 | drop_table :changes | |
| 87 | drop_table :journals | |
| 88 | end | |
| 89 | ||
| 90 | end | |
| 91 | ||
| 92 | ||
| 93 | ||
| toggle raw diff | ||
db/migrate/012_acts_as_taggable_migration.rb
|   | ||
| 0 | ||
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 | ||
| 7 | ||
