Merge pull request #343 from opf/feature/squashed-migrations
Removes migrations in favor of their aggregation.pull/350/merge
commit
1e4f9fcbdf
@ -0,0 +1,878 @@ |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
# This migration aggregates the migrations detailed in the @@migrations |
||||
# heredoc |
||||
class AggregatedMigrations < ActiveRecord::Migration |
||||
|
||||
class IncompleteMigrationsError < ::StandardError |
||||
end |
||||
|
||||
@@migrations = <<-MIGRATIONS |
||||
001_setup.rb |
||||
002_issue_move.rb |
||||
003_issue_add_note.rb |
||||
004_export_pdf.rb |
||||
005_issue_start_date.rb |
||||
006_calendar_and_activity.rb |
||||
007_create_journals.rb |
||||
008_create_user_preferences.rb |
||||
009_add_hide_mail_pref.rb |
||||
010_create_comments.rb |
||||
011_add_news_comments_count.rb |
||||
012_add_comments_permissions.rb |
||||
013_create_queries.rb |
||||
014_add_queries_permissions.rb |
||||
015_create_repositories.rb |
||||
016_add_repositories_permissions.rb |
||||
017_create_settings.rb |
||||
018_set_doc_and_files_notifications.rb |
||||
019_add_issue_status_position.rb |
||||
020_add_role_position.rb |
||||
021_add_tracker_position.rb |
||||
022_serialize_possibles_values.rb |
||||
023_add_tracker_is_in_roadmap.rb |
||||
024_add_roadmap_permission.rb |
||||
025_add_search_permission.rb |
||||
026_add_repository_login_and_password.rb |
||||
027_create_wikis.rb |
||||
028_create_wiki_pages.rb |
||||
029_create_wiki_contents.rb |
||||
030_add_projects_feeds_permissions.rb |
||||
031_add_repository_root_url.rb |
||||
032_create_time_entries.rb |
||||
033_add_timelog_permissions.rb |
||||
034_create_changesets.rb |
||||
035_create_changes.rb |
||||
036_add_changeset_commit_date.rb |
||||
037_add_project_identifier.rb |
||||
038_add_custom_field_is_filter.rb |
||||
039_create_watchers.rb |
||||
040_create_changesets_issues.rb |
||||
041_rename_comment_to_comments.rb |
||||
042_create_issue_relations.rb |
||||
043_add_relations_permissions.rb |
||||
044_set_language_length_to_five.rb |
||||
045_create_boards.rb |
||||
046_create_messages.rb |
||||
047_add_boards_permissions.rb |
||||
048_allow_null_version_effective_date.rb |
||||
049_add_wiki_destroy_page_permission.rb |
||||
050_add_wiki_attachments_permissions.rb |
||||
051_add_project_status.rb |
||||
052_add_changes_revision.rb |
||||
053_add_changes_branch.rb |
||||
054_add_changesets_scmid.rb |
||||
055_add_repositories_type.rb |
||||
056_add_repositories_changes_permission.rb |
||||
057_add_versions_wiki_page_title.rb |
||||
058_add_issue_categories_assigned_to_id.rb |
||||
059_add_roles_assignable.rb |
||||
060_change_changesets_committer_limit.rb |
||||
061_add_roles_builtin.rb |
||||
062_insert_builtin_roles.rb |
||||
063_add_roles_permissions.rb |
||||
064_drop_permissions.rb |
||||
065_add_settings_updated_on.rb |
||||
066_add_custom_value_customized_index.rb |
||||
067_create_wiki_redirects.rb |
||||
068_create_enabled_modules.rb |
||||
069_add_issues_estimated_hours.rb |
||||
070_change_attachments_content_type_limit.rb |
||||
071_add_queries_column_names.rb |
||||
072_add_enumerations_position.rb |
||||
073_add_enumerations_is_default.rb |
||||
074_add_auth_sources_tls.rb |
||||
075_add_members_mail_notification.rb |
||||
076_allow_null_position.rb |
||||
077_remove_issue_statuses_html_color.rb |
||||
078_add_custom_fields_position.rb |
||||
079_add_user_preferences_time_zone.rb |
||||
080_add_users_type.rb |
||||
081_create_projects_trackers.rb |
||||
082_add_messages_locked.rb |
||||
083_add_messages_sticky.rb |
||||
084_change_auth_sources_account_limit.rb |
||||
085_add_role_tracker_old_status_index_to_workflows.rb |
||||
086_add_custom_fields_searchable.rb |
||||
087_change_projects_description_to_text.rb |
||||
088_add_custom_fields_default_value.rb |
||||
089_add_attachments_description.rb |
||||
090_change_versions_name_limit.rb |
||||
091_change_changesets_revision_to_string.rb |
||||
092_change_changes_from_revision_to_string.rb |
||||
093_add_wiki_pages_protected.rb |
||||
094_change_projects_homepage_limit.rb |
||||
095_add_wiki_pages_parent_id.rb |
||||
096_add_commit_access_permission.rb |
||||
097_add_view_wiki_edits_permission.rb |
||||
098_set_topic_authors_as_watchers.rb |
||||
099_add_delete_wiki_pages_attachments_permission.rb |
||||
100_add_changesets_user_id.rb |
||||
101_populate_changesets_user_id.rb |
||||
102_add_custom_fields_editable.rb |
||||
103_set_custom_fields_editable.rb |
||||
104_add_projects_lft_and_rgt.rb |
||||
105_build_projects_tree.rb |
||||
106_remove_projects_projects_count.rb |
||||
107_add_open_id_authentication_tables.rb |
||||
108_add_identity_url_to_users.rb |
||||
20090214190337_add_watchers_user_id_type_index.rb |
||||
20090312172426_add_queries_sort_criteria.rb |
||||
20090312194159_add_projects_trackers_unique_index.rb |
||||
20090318181151_extend_settings_name.rb |
||||
20090323224724_add_type_to_enumerations.rb |
||||
20090401221305_update_enumerations_to_sti.rb |
||||
20090401231134_add_active_field_to_enumerations.rb |
||||
20090403001910_add_project_to_enumerations.rb |
||||
20090406161854_add_parent_id_to_enumerations.rb |
||||
20090425161243_add_queries_group_by.rb |
||||
20090503121501_create_member_roles.rb |
||||
20090503121505_populate_member_roles.rb |
||||
20090503121510_drop_members_role_id.rb |
||||
20090614091200_fix_messages_sticky_null.rb |
||||
20090704172350_populate_users_type.rb |
||||
20090704172355_create_groups_users.rb |
||||
20090704172358_add_member_roles_inherited_from.rb |
||||
20091010093521_fix_users_custom_values.rb |
||||
20091017212227_add_missing_indexes_to_workflows.rb |
||||
20091017212457_add_missing_indexes_to_custom_fields_projects.rb |
||||
20091017212644_add_missing_indexes_to_messages.rb |
||||
20091017212938_add_missing_indexes_to_repositories.rb |
||||
20091017213027_add_missing_indexes_to_comments.rb |
||||
20091017213113_add_missing_indexes_to_enumerations.rb |
||||
20091017213151_add_missing_indexes_to_wiki_pages.rb |
||||
20091017213228_add_missing_indexes_to_watchers.rb |
||||
20091017213257_add_missing_indexes_to_auth_sources.rb |
||||
20091017213332_add_missing_indexes_to_documents.rb |
||||
20091017213444_add_missing_indexes_to_tokens.rb |
||||
20091017213536_add_missing_indexes_to_changesets.rb |
||||
20091017213642_add_missing_indexes_to_issue_categories.rb |
||||
20091017213716_add_missing_indexes_to_member_roles.rb |
||||
20091017213757_add_missing_indexes_to_boards.rb |
||||
20091017213835_add_missing_indexes_to_user_preferences.rb |
||||
20091017213910_add_missing_indexes_to_issues.rb |
||||
20091017214015_add_missing_indexes_to_members.rb |
||||
20091017214107_add_missing_indexes_to_custom_fields.rb |
||||
20091017214136_add_missing_indexes_to_queries.rb |
||||
20091017214236_add_missing_indexes_to_time_entries.rb |
||||
20091017214308_add_missing_indexes_to_news.rb |
||||
20091017214336_add_missing_indexes_to_users.rb |
||||
20091017214406_add_missing_indexes_to_attachments.rb |
||||
20091017214440_add_missing_indexes_to_wiki_contents.rb |
||||
20091017214519_add_missing_indexes_to_custom_values.rb |
||||
20091017214611_add_missing_indexes_to_journals.rb |
||||
20091017214644_add_missing_indexes_to_issue_relations.rb |
||||
20091017214720_add_missing_indexes_to_wiki_redirects.rb |
||||
20091017214750_add_missing_indexes_to_custom_fields_trackers.rb |
||||
20091025163651_add_activity_indexes.rb |
||||
20091108092559_add_versions_status.rb |
||||
20091114105931_add_view_issues_permission.rb |
||||
20091123212029_add_default_done_ratio_to_issue_status.rb |
||||
20091205124427_add_versions_sharing.rb |
||||
20091220183509_add_lft_and_rgt_indexes_to_projects.rb |
||||
20091220183727_add_index_to_settings_name.rb |
||||
20091220184736_add_indexes_to_issue_status.rb |
||||
20091225164732_remove_enumerations_opt.rb |
||||
20091227112908_change_wiki_contents_text_limit.rb |
||||
20100129193402_change_users_mail_notification_to_string.rb |
||||
20100129193813_update_mail_notification_values.rb |
||||
20100221100219_add_index_on_changesets_scmid.rb |
||||
20100313132032_add_issues_nested_sets_columns.rb |
||||
20100313171051_add_index_on_issues_nested_set.rb |
||||
20100705164950_change_changes_path_length_limit.rb |
||||
20100714111651_prepare_journals_for_acts_as_journalized.rb |
||||
20100714111652_update_journals_for_acts_as_journalized.rb |
||||
20100714111653_build_initial_journals_for_acts_as_journalized.rb |
||||
20100714111654_add_changes_from_journal_details_for_acts_as_journalized.rb |
||||
20100804112053_merge_wiki_versions_with_journals.rb |
||||
20100819172912_enable_calendar_and_gantt_modules_where_appropriate.rb |
||||
20101104182107_add_unique_index_on_members.rb |
||||
20101107130441_add_custom_fields_visible.rb |
||||
20101114115114_change_projects_name_limit.rb |
||||
20101114115359_change_projects_identifier_limit.rb |
||||
20110220160626_add_workflows_assignee_and_author.rb |
||||
20110223180944_add_users_salt.rb |
||||
20110223180953_salt_user_passwords.rb |
||||
20110224000000_add_repositories_path_encoding.rb |
||||
20110226120112_change_repositories_password_limit.rb |
||||
20110226120132_change_auth_sources_account_password_limit.rb |
||||
20110227125750_change_journal_details_values_to_text.rb |
||||
20110228000000_add_repositories_log_encoding.rb |
||||
20110228000100_copy_repositories_log_encoding.rb |
||||
20110314014400_add_start_date_to_versions.rb |
||||
20110401192910_add_index_to_users_type.rb |
||||
20110519194936_remove_comments_from_wiki_content.rb |
||||
20110729125454_remove_double_initial_wiki_content_journals.rb |
||||
MIGRATIONS |
||||
|
||||
def up |
||||
|
||||
intersection = aggregated_versions & all_versions |
||||
|
||||
if intersection == [] |
||||
|
||||
# No migrations that this migration aggregates have already been |
||||
# applied. In this case, run the aggregated migration. |
||||
run_aggregated_migrations |
||||
|
||||
elsif intersection == aggregated_versions |
||||
|
||||
# All migrations that this migration aggregates have already |
||||
# been applied. In this case, remove the information about those |
||||
# migrations from the schema_migrations table and we're done. |
||||
execute <<-SQL + (intersection.map { |version| <<-CONDITIONS }).join(" OR ") |
||||
DELETE FROM |
||||
#{quoted_schema_migrations_table_name} |
||||
WHERE |
||||
SQL |
||||
#{version_column_for_comparison} = #{quote_value(version.to_s)} |
||||
CONDITIONS |
||||
|
||||
else |
||||
|
||||
missing = aggregated_versions - intersection |
||||
|
||||
# Only a part of the migrations that this migration aggregates |
||||
# have already been applied. In this case, fail miserably. |
||||
raise IncompleteMigrationsError, <<-MESSAGE.split("\n").map(&:strip!).join(" ") + "\n" |
||||
It appears you are migrating from an incompatible version of |
||||
ChiliProject. Your database has only some migrations from ChiliProject < |
||||
v2.4.0. Please update your database to the schema of ChiliProject |
||||
v2.4.0 and run the OpenProject migrations again. The following |
||||
migrations are missing: #{missing} |
||||
MESSAGE |
||||
|
||||
end |
||||
|
||||
end |
||||
|
||||
def down |
||||
# TODO. |
||||
raise ActiveRecord::IrreversibleMigration, "Kind of still a TODO." |
||||
end |
||||
|
||||
private |
||||
|
||||
def run_aggregated_migrations |
||||
|
||||
create_table "attachments", :force => true do |t| |
||||
t.integer "container_id", :default => 0, :null => false |
||||
t.string "container_type", :limit => 30, :default => "", :null => false |
||||
t.string "filename", :default => "", :null => false |
||||
t.string "disk_filename", :default => "", :null => false |
||||
t.integer "filesize", :default => 0, :null => false |
||||
t.string "content_type", :default => "" |
||||
t.string "digest", :limit => 40, :default => "", :null => false |
||||
t.integer "downloads", :default => 0, :null => false |
||||
t.integer "author_id", :default => 0, :null => false |
||||
t.datetime "created_on" |
||||
t.string "description" |
||||
end |
||||
|
||||
add_index "attachments", ["author_id"], :name => "index_attachments_on_author_id" |
||||
add_index "attachments", ["container_id", "container_type"], :name => "index_attachments_on_container_id_and_container_type" |
||||
add_index "attachments", ["created_on"], :name => "index_attachments_on_created_on" |
||||
|
||||
create_table "auth_sources", :force => true do |t| |
||||
t.string "type", :limit => 30, :default => "", :null => false |
||||
t.string "name", :limit => 60, :default => "", :null => false |
||||
t.string "host", :limit => 60 |
||||
t.integer "port" |
||||
t.string "account" |
||||
t.string "account_password", :default => "" |
||||
t.string "base_dn" |
||||
t.string "attr_login", :limit => 30 |
||||
t.string "attr_firstname", :limit => 30 |
||||
t.string "attr_lastname", :limit => 30 |
||||
t.string "attr_mail", :limit => 30 |
||||
t.boolean "onthefly_register", :default => false, :null => false |
||||
t.boolean "tls", :default => false, :null => false |
||||
end |
||||
|
||||
add_index "auth_sources", ["id", "type"], :name => "index_auth_sources_on_id_and_type" |
||||
|
||||
create_table "boards", :force => true do |t| |
||||
t.integer "project_id", :null => false |
||||
t.string "name", :default => "", :null => false |
||||
t.string "description" |
||||
t.integer "position", :default => 1 |
||||
t.integer "topics_count", :default => 0, :null => false |
||||
t.integer "messages_count", :default => 0, :null => false |
||||
t.integer "last_message_id" |
||||
end |
||||
|
||||
add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id" |
||||
add_index "boards", ["project_id"], :name => "boards_project_id" |
||||
|
||||
create_table "changes", :force => true do |t| |
||||
t.integer "changeset_id", :null => false |
||||
t.string "action", :limit => 1, :default => "", :null => false |
||||
t.text "path", :null => false |
||||
t.text "from_path" |
||||
t.string "from_revision" |
||||
t.string "revision" |
||||
t.string "branch" |
||||
end |
||||
|
||||
add_index "changes", ["changeset_id"], :name => "changesets_changeset_id" |
||||
|
||||
create_table "changesets", :force => true do |t| |
||||
t.integer "repository_id", :null => false |
||||
t.string "revision", :null => false |
||||
t.string "committer" |
||||
t.datetime "committed_on", :null => false |
||||
t.text "comments" |
||||
t.date "commit_date" |
||||
t.string "scmid" |
||||
t.integer "user_id" |
||||
end |
||||
|
||||
add_index "changesets", ["committed_on"], :name => "index_changesets_on_committed_on" |
||||
add_index "changesets", ["repository_id", "revision"], :name => "changesets_repos_rev", :unique => true |
||||
add_index "changesets", ["repository_id", "scmid"], :name => "changesets_repos_scmid" |
||||
add_index "changesets", ["repository_id"], :name => "index_changesets_on_repository_id" |
||||
add_index "changesets", ["user_id"], :name => "index_changesets_on_user_id" |
||||
|
||||
create_table "changesets_issues", :id => false, :force => true do |t| |
||||
t.integer "changeset_id", :null => false |
||||
t.integer "issue_id", :null => false |
||||
end |
||||
|
||||
add_index "changesets_issues", ["changeset_id", "issue_id"], :name => "changesets_issues_ids", :unique => true |
||||
|
||||
create_table "comments", :force => true do |t| |
||||
t.string "commented_type", :limit => 30, :default => "", :null => false |
||||
t.integer "commented_id", :default => 0, :null => false |
||||
t.integer "author_id", :default => 0, :null => false |
||||
t.text "comments" |
||||
t.datetime "created_on", :null => false |
||||
t.datetime "updated_on", :null => false |
||||
end |
||||
|
||||
add_index "comments", ["author_id"], :name => "index_comments_on_author_id" |
||||
add_index "comments", ["commented_id", "commented_type"], :name => "index_comments_on_commented_id_and_commented_type" |
||||
|
||||
create_table "custom_fields", :force => true do |t| |
||||
t.string "type", :limit => 30, :default => "", :null => false |
||||
t.string "name", :limit => 30, :default => "", :null => false |
||||
t.string "field_format", :limit => 30, :default => "", :null => false |
||||
t.text "possible_values" |
||||
t.string "regexp", :default => "" |
||||
t.integer "min_length", :default => 0, :null => false |
||||
t.integer "max_length", :default => 0, :null => false |
||||
t.boolean "is_required", :default => false, :null => false |
||||
t.boolean "is_for_all", :default => false, :null => false |
||||
t.boolean "is_filter", :default => false, :null => false |
||||
t.integer "position", :default => 1 |
||||
t.boolean "searchable", :default => false |
||||
t.text "default_value" |
||||
t.boolean "editable", :default => true |
||||
t.boolean "visible", :default => true, :null => false |
||||
end |
||||
|
||||
add_index "custom_fields", ["id", "type"], :name => "index_custom_fields_on_id_and_type" |
||||
|
||||
create_table "custom_fields_projects", :id => false, :force => true do |t| |
||||
t.integer "custom_field_id", :default => 0, :null => false |
||||
t.integer "project_id", :default => 0, :null => false |
||||
end |
||||
|
||||
add_index "custom_fields_projects", ["custom_field_id", "project_id"], :name => "index_custom_fields_projects_on_custom_field_id_and_project_id" |
||||
|
||||
create_table "custom_fields_trackers", :id => false, :force => true do |t| |
||||
t.integer "custom_field_id", :default => 0, :null => false |
||||
t.integer "tracker_id", :default => 0, :null => false |
||||
end |
||||
|
||||
add_index "custom_fields_trackers", ["custom_field_id", "tracker_id"], :name => "index_custom_fields_trackers_on_custom_field_id_and_tracker_id" |
||||
|
||||
create_table "custom_values", :force => true do |t| |
||||
t.string "customized_type", :limit => 30, :default => "", :null => false |
||||
t.integer "customized_id", :default => 0, :null => false |
||||
t.integer "custom_field_id", :default => 0, :null => false |
||||
t.text "value" |
||||
end |
||||
|
||||
add_index "custom_values", ["custom_field_id"], :name => "index_custom_values_on_custom_field_id" |
||||
add_index "custom_values", ["customized_type", "customized_id"], :name => "custom_values_customized" |
||||
|
||||
create_table "documents", :force => true do |t| |
||||
t.integer "project_id", :default => 0, :null => false |
||||
t.integer "category_id", :default => 0, :null => false |
||||
t.string "title", :limit => 60, :default => "", :null => false |
||||
t.text "description" |
||||
t.datetime "created_on" |
||||
end |
||||
|
||||
add_index "documents", ["category_id"], :name => "index_documents_on_category_id" |
||||
add_index "documents", ["created_on"], :name => "index_documents_on_created_on" |
||||
add_index "documents", ["project_id"], :name => "documents_project_id" |
||||
|
||||
create_table "enabled_modules", :force => true do |t| |
||||
t.integer "project_id" |
||||
t.string "name", :null => false |
||||
end |
||||
|
||||
add_index "enabled_modules", ["project_id"], :name => "enabled_modules_project_id" |
||||
|
||||
create_table "enumerations", :force => true do |t| |
||||
t.string "name", :limit => 30, :default => "", :null => false |
||||
t.integer "position", :default => 1 |
||||
t.boolean "is_default", :default => false, :null => false |
||||
t.string "type" |
||||
t.boolean "active", :default => true, :null => false |
||||
t.integer "project_id" |
||||
t.integer "parent_id" |
||||
end |
||||
|
||||
add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type" |
||||
add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id" |
||||
|
||||
create_table "groups_users", :id => false, :force => true do |t| |
||||
t.integer "group_id", :null => false |
||||
t.integer "user_id", :null => false |
||||
end |
||||
|
||||
add_index "groups_users", ["group_id", "user_id"], :name => "groups_users_ids", :unique => true |
||||
|
||||
create_table "issue_categories", :force => true do |t| |
||||
t.integer "project_id", :default => 0, :null => false |
||||
t.string "name", :limit => 30, :default => "", :null => false |
||||
t.integer "assigned_to_id" |
||||
end |
||||
|
||||
add_index "issue_categories", ["assigned_to_id"], :name => "index_issue_categories_on_assigned_to_id" |
||||
add_index "issue_categories", ["project_id"], :name => "issue_categories_project_id" |
||||
|
||||
create_table "issue_relations", :force => true do |t| |
||||
t.integer "issue_from_id", :null => false |
||||
t.integer "issue_to_id", :null => false |
||||
t.string "relation_type", :default => "", :null => false |
||||
t.integer "delay" |
||||
end |
||||
|
||||
add_index "issue_relations", ["issue_from_id"], :name => "index_issue_relations_on_issue_from_id" |
||||
add_index "issue_relations", ["issue_to_id"], :name => "index_issue_relations_on_issue_to_id" |
||||
|
||||
create_table "issue_statuses", :force => true do |t| |
||||
t.string "name", :limit => 30, :default => "", :null => false |
||||
t.boolean "is_closed", :default => false, :null => false |
||||
t.boolean "is_default", :default => false, :null => false |
||||
t.integer "position", :default => 1 |
||||
t.integer "default_done_ratio" |
||||
end |
||||
|
||||
add_index "issue_statuses", ["is_closed"], :name => "index_issue_statuses_on_is_closed" |
||||
add_index "issue_statuses", ["is_default"], :name => "index_issue_statuses_on_is_default" |
||||
add_index "issue_statuses", ["position"], :name => "index_issue_statuses_on_position" |
||||
|
||||
create_table "issues", :force => true do |t| |
||||
t.integer "tracker_id", :default => 0, :null => false |
||||
t.integer "project_id", :default => 0, :null => false |
||||
t.string "subject", :default => "", :null => false |
||||
t.text "description" |
||||
t.date "due_date" |
||||
t.integer "category_id" |
||||
t.integer "status_id", :default => 0, :null => false |
||||
t.integer "assigned_to_id" |
||||
t.integer "priority_id", :default => 0, :null => false |
||||
t.integer "fixed_version_id" |
||||
t.integer "author_id", :default => 0, :null => false |
||||
t.integer "lock_version", :default => 0, :null => false |
||||
t.datetime "created_on" |
||||
t.datetime "updated_on" |
||||
t.date "start_date" |
||||
t.integer "done_ratio", :default => 0, :null => false |
||||
t.float "estimated_hours" |
||||
t.integer "parent_id" |
||||
t.integer "root_id" |
||||
t.integer "lft" |
||||
t.integer "rgt" |
||||
end |
||||
|
||||
add_index "issues", ["assigned_to_id"], :name => "index_issues_on_assigned_to_id" |
||||
add_index "issues", ["author_id"], :name => "index_issues_on_author_id" |
||||
add_index "issues", ["category_id"], :name => "index_issues_on_category_id" |
||||
add_index "issues", ["created_on"], :name => "index_issues_on_created_on" |
||||
add_index "issues", ["fixed_version_id"], :name => "index_issues_on_fixed_version_id" |
||||
add_index "issues", ["priority_id"], :name => "index_issues_on_priority_id" |
||||
add_index "issues", ["project_id"], :name => "issues_project_id" |
||||
add_index "issues", ["root_id", "lft", "rgt"], :name => "index_issues_on_root_id_and_lft_and_rgt" |
||||
add_index "issues", ["status_id"], :name => "index_issues_on_status_id" |
||||
add_index "issues", ["tracker_id"], :name => "index_issues_on_tracker_id" |
||||
|
||||
create_table "journal_details", :force => true do |t| |
||||
t.integer "journal_id", :default => 0, :null => false |
||||
t.string "property", :limit => 30, :default => "", :null => false |
||||
t.string "prop_key", :limit => 30, :default => "", :null => false |
||||
t.text "old_value" |
||||
t.text "value" |
||||
end |
||||
|
||||
add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id" |
||||
|
||||
create_table "journals", :force => true do |t| |
||||
t.integer "journaled_id", :default => 0, :null => false |
||||
t.integer "user_id", :default => 0, :null => false |
||||
t.text "notes" |
||||
t.datetime "created_at", :null => false |
||||
t.integer "version", :default => 0, :null => false |
||||
t.string "activity_type" |
||||
t.text "changes" |
||||
t.string "type" |
||||
end |
||||
|
||||
add_index "journals", ["activity_type"], :name => "index_journals_on_activity_type" |
||||
add_index "journals", ["created_at"], :name => "index_journals_on_created_at" |
||||
add_index "journals", ["created_at"], :name => "index_journals_on_created_on" |
||||
add_index "journals", ["journaled_id"], :name => "index_journals_on_journaled_id" |
||||
add_index "journals", ["journaled_id"], :name => "index_journals_on_journalized_id" |
||||
add_index "journals", ["type"], :name => "index_journals_on_type" |
||||
add_index "journals", ["user_id"], :name => "index_journals_on_user_id" |
||||
|
||||
create_table "member_roles", :force => true do |t| |
||||
t.integer "member_id", :null => false |
||||
t.integer "role_id", :null => false |
||||
t.integer "inherited_from" |
||||
end |
||||
|
||||
add_index "member_roles", ["member_id"], :name => "index_member_roles_on_member_id" |
||||
add_index "member_roles", ["role_id"], :name => "index_member_roles_on_role_id" |
||||
|
||||
create_table "members", :force => true do |t| |
||||
t.integer "user_id", :default => 0, :null => false |
||||
t.integer "project_id", :default => 0, :null => false |
||||
t.datetime "created_on" |
||||
t.boolean "mail_notification", :default => false, :null => false |
||||
end |
||||
|
||||
add_index "members", ["project_id"], :name => "index_members_on_project_id" |
||||
add_index "members", ["user_id", "project_id"], :name => "index_members_on_user_id_and_project_id", :unique => true |
||||
add_index "members", ["user_id"], :name => "index_members_on_user_id" |
||||
|
||||
create_table "messages", :force => true do |t| |
||||
t.integer "board_id", :null => false |
||||
t.integer "parent_id" |
||||
t.string "subject", :default => "", :null => false |
||||
t.text "content" |
||||
t.integer "author_id" |
||||
t.integer "replies_count", :default => 0, :null => false |
||||
t.integer "last_reply_id" |
||||
t.datetime "created_on", :null => false |
||||
t.datetime "updated_on", :null => false |
||||
t.boolean "locked", :default => false |
||||
t.integer "sticky", :default => 0 |
||||
end |
||||
|
||||
add_index "messages", ["author_id"], :name => "index_messages_on_author_id" |
||||
add_index "messages", ["board_id"], :name => "messages_board_id" |
||||
add_index "messages", ["created_on"], :name => "index_messages_on_created_on" |
||||
add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id" |
||||
add_index "messages", ["parent_id"], :name => "messages_parent_id" |
||||
|
||||
create_table "news", :force => true do |t| |
||||
t.integer "project_id" |
||||
t.string "title", :limit => 60, :default => "", :null => false |
||||
t.string "summary", :default => "" |
||||
t.text "description" |
||||
t.integer "author_id", :default => 0, :null => false |
||||
t.datetime "created_on" |
||||
t.integer "comments_count", :default => 0, :null => false |
||||
end |
||||
|
||||
add_index "news", ["author_id"], :name => "index_news_on_author_id" |
||||
add_index "news", ["created_on"], :name => "index_news_on_created_on" |
||||
add_index "news", ["project_id"], :name => "news_project_id" |
||||
|
||||
create_table "open_id_authentication_associations", :force => true do |t| |
||||
t.integer "issued" |
||||
t.integer "lifetime" |
||||
t.string "handle" |
||||
t.string "assoc_type" |
||||
t.binary "server_url" |
||||
t.binary "secret" |
||||
end |
||||
|
||||
create_table "open_id_authentication_nonces", :force => true do |t| |
||||
t.integer "timestamp", :null => false |
||||
t.string "server_url" |
||||
t.string "salt", :null => false |
||||
end |
||||
|
||||
create_table "projects", :force => true do |t| |
||||
t.string "name", :default => "", :null => false |
||||
t.text "description" |
||||
t.string "homepage", :default => "" |
||||
t.boolean "is_public", :default => true, :null => false |
||||
t.integer "parent_id" |
||||
t.datetime "created_on" |
||||
t.datetime "updated_on" |
||||
t.string "identifier" |
||||
t.integer "status", :default => 1, :null => false |
||||
t.integer "lft" |
||||
t.integer "rgt" |
||||
end |
||||
|
||||
add_index "projects", ["lft"], :name => "index_projects_on_lft" |
||||
add_index "projects", ["rgt"], :name => "index_projects_on_rgt" |
||||
|
||||
create_table "projects_trackers", :id => false, :force => true do |t| |
||||
t.integer "project_id", :default => 0, :null => false |
||||
t.integer "tracker_id", :default => 0, :null => false |
||||
end |
||||
|
||||
add_index "projects_trackers", ["project_id", "tracker_id"], :name => "projects_trackers_unique", :unique => true |
||||
add_index "projects_trackers", ["project_id"], :name => "projects_trackers_project_id" |
||||
|
||||
create_table "queries", :force => true do |t| |
||||
t.integer "project_id" |
||||
t.string "name", :default => "", :null => false |
||||
t.text "filters" |
||||
t.integer "user_id", :default => 0, :null => false |
||||
t.boolean "is_public", :default => false, :null => false |
||||
t.text "column_names" |
||||
t.text "sort_criteria" |
||||
t.string "group_by" |
||||
end |
||||
|
||||
add_index "queries", ["project_id"], :name => "index_queries_on_project_id" |
||||
add_index "queries", ["user_id"], :name => "index_queries_on_user_id" |
||||
|
||||
create_table "repositories", :force => true do |t| |
||||
t.integer "project_id", :default => 0, :null => false |
||||
t.string "url", :default => "", :null => false |
||||
t.string "login", :limit => 60, :default => "" |
||||
t.string "password", :default => "" |
||||
t.string "root_url", :default => "" |
||||
t.string "type" |
||||
t.string "path_encoding", :limit => 64 |
||||
t.string "log_encoding", :limit => 64 |
||||
end |
||||
|
||||
add_index "repositories", ["project_id"], :name => "index_repositories_on_project_id" |
||||
|
||||
create_table "roles", :force => true do |t| |
||||
t.string "name", :limit => 30, :default => "", :null => false |
||||
t.integer "position", :default => 1 |
||||
t.boolean "assignable", :default => true |
||||
t.integer "builtin", :default => 0, :null => false |
||||
t.text "permissions" |
||||
end |
||||
|
||||
create_table "settings", :force => true do |t| |
||||
t.string "name", :default => "", :null => false |
||||
t.text "value" |
||||
t.datetime "updated_on" |
||||
end |
||||
|
||||
add_index "settings", ["name"], :name => "index_settings_on_name" |
||||
|
||||
create_table "time_entries", :force => true do |t| |
||||
t.integer "project_id", :null => false |
||||
t.integer "user_id", :null => false |
||||
t.integer "issue_id" |
||||
t.float "hours", :null => false |
||||
t.string "comments" |
||||
t.integer "activity_id", :null => false |
||||
t.date "spent_on", :null => false |
||||
t.integer "tyear", :null => false |
||||
t.integer "tmonth", :null => false |
||||
t.integer "tweek", :null => false |
||||
t.datetime "created_on", :null => false |
||||
t.datetime "updated_on", :null => false |
||||
end |
||||
|
||||
add_index "time_entries", ["activity_id"], :name => "index_time_entries_on_activity_id" |
||||
add_index "time_entries", ["created_on"], :name => "index_time_entries_on_created_on" |
||||
add_index "time_entries", ["issue_id"], :name => "time_entries_issue_id" |
||||
add_index "time_entries", ["project_id"], :name => "time_entries_project_id" |
||||
add_index "time_entries", ["user_id"], :name => "index_time_entries_on_user_id" |
||||
|
||||
create_table "tokens", :force => true do |t| |
||||
t.integer "user_id", :default => 0, :null => false |
||||
t.string "action", :limit => 30, :default => "", :null => false |
||||
t.string "value", :limit => 40, :default => "", :null => false |
||||
t.datetime "created_on", :null => false |
||||
end |
||||
|
||||
add_index "tokens", ["user_id"], :name => "index_tokens_on_user_id" |
||||
|
||||
create_table "trackers", :force => true do |t| |
||||
t.string "name", :limit => 30, :default => "", :null => false |
||||
t.boolean "is_in_chlog", :default => false, :null => false |
||||
t.integer "position", :default => 1 |
||||
t.boolean "is_in_roadmap", :default => true, :null => false |
||||
end |
||||
|
||||
create_table "user_preferences", :force => true do |t| |
||||
t.integer "user_id", :default => 0, :null => false |
||||
t.text "others" |
||||
t.boolean "hide_mail", :default => false |
||||
t.string "time_zone" |
||||
end |
||||
|
||||
add_index "user_preferences", ["user_id"], :name => "index_user_preferences_on_user_id" |
||||
|
||||
create_table "users", :force => true do |t| |
||||
t.string "login", :limit => 30, :default => "", :null => false |
||||
t.string "hashed_password", :limit => 40, :default => "", :null => false |
||||
t.string "firstname", :limit => 30, :default => "", :null => false |
||||
t.string "lastname", :limit => 30, :default => "", :null => false |
||||
t.string "mail", :limit => 60, :default => "", :null => false |
||||
t.boolean "admin", :default => false, :null => false |
||||
t.integer "status", :default => 1, :null => false |
||||
t.datetime "last_login_on" |
||||
t.string "language", :limit => 5, :default => "" |
||||
t.integer "auth_source_id" |
||||
t.datetime "created_on" |
||||
t.datetime "updated_on" |
||||
t.string "type" |
||||
t.string "identity_url" |
||||
t.string "mail_notification", :default => "", :null => false |
||||
t.string "salt", :limit => 64 |
||||
end |
||||
|
||||
add_index "users", ["auth_source_id"], :name => "index_users_on_auth_source_id" |
||||
add_index "users", ["id", "type"], :name => "index_users_on_id_and_type" |
||||
add_index "users", ["type"], :name => "index_users_on_type" |
||||
|
||||
create_table "versions", :force => true do |t| |
||||
t.integer "project_id", :default => 0, :null => false |
||||
t.string "name", :default => "", :null => false |
||||
t.string "description", :default => "" |
||||
t.date "effective_date" |
||||
t.datetime "created_on" |
||||
t.datetime "updated_on" |
||||
t.string "wiki_page_title" |
||||
t.string "status", :default => "open" |
||||
t.string "sharing", :default => "none", :null => false |
||||
t.date "start_date" |
||||
end |
||||
|
||||
add_index "versions", ["project_id"], :name => "versions_project_id" |
||||
add_index "versions", ["sharing"], :name => "index_versions_on_sharing" |
||||
|
||||
create_table "watchers", :force => true do |t| |
||||
t.string "watchable_type", :default => "", :null => false |
||||
t.integer "watchable_id", :default => 0, :null => false |
||||
t.integer "user_id" |
||||
end |
||||
|
||||
add_index "watchers", ["user_id", "watchable_type"], :name => "watchers_user_id_type" |
||||
add_index "watchers", ["user_id"], :name => "index_watchers_on_user_id" |
||||
add_index "watchers", ["watchable_id", "watchable_type"], :name => "index_watchers_on_watchable_id_and_watchable_type" |
||||
|
||||
create_table "wiki_content_versions", :force => true do |t| |
||||
t.integer "wiki_content_id", :null => false |
||||
t.integer "page_id", :null => false |
||||
t.integer "author_id" |
||||
t.binary "data", :limit => 16.megabytes |
||||
t.string "compression", :limit => 6, :default => "" |
||||
t.string "comments", :default => "" |
||||
t.datetime "updated_on", :null => false |
||||
t.integer "version", :null => false |
||||
end |
||||
|
||||
add_index "wiki_content_versions", ["updated_on"], :name => "index_wiki_content_versions_on_updated_on" |
||||
add_index "wiki_content_versions", ["wiki_content_id"], :name => "wiki_content_versions_wcid" |
||||
|
||||
create_table "wiki_contents", :force => true do |t| |
||||
t.integer "page_id", :null => false |
||||
t.integer "author_id" |
||||
t.text "text", :limit => 16.megabytes |
||||
t.datetime "updated_on", :null => false |
||||
t.integer "lock_version", :null => false |
||||
end |
||||
|
||||
add_index "wiki_contents", ["author_id"], :name => "index_wiki_contents_on_author_id" |
||||
add_index "wiki_contents", ["page_id"], :name => "wiki_contents_page_id" |
||||
|
||||
create_table "wiki_pages", :force => true do |t| |
||||
t.integer "wiki_id", :null => false |
||||
t.string "title", :null => false |
||||
t.datetime "created_on", :null => false |
||||
t.boolean "protected", :default => false, :null => false |
||||
t.integer "parent_id" |
||||
end |
||||
|
||||
add_index "wiki_pages", ["parent_id"], :name => "index_wiki_pages_on_parent_id" |
||||
add_index "wiki_pages", ["wiki_id", "title"], :name => "wiki_pages_wiki_id_title" |
||||
add_index "wiki_pages", ["wiki_id"], :name => "index_wiki_pages_on_wiki_id" |
||||
|
||||
create_table "wiki_redirects", :force => true do |t| |
||||
t.integer "wiki_id", :null => false |
||||
t.string "title" |
||||
t.string "redirects_to" |
||||
t.datetime "created_on", :null => false |
||||
end |
||||
|
||||
add_index "wiki_redirects", ["wiki_id", "title"], :name => "wiki_redirects_wiki_id_title" |
||||
add_index "wiki_redirects", ["wiki_id"], :name => "index_wiki_redirects_on_wiki_id" |
||||
|
||||
create_table "wikis", :force => true do |t| |
||||
t.integer "project_id", :null => false |
||||
t.string "start_page", :null => false |
||||
t.integer "status", :default => 1, :null => false |
||||
end |
||||
|
||||
add_index "wikis", ["project_id"], :name => "wikis_project_id" |
||||
|
||||
create_table "workflows", :force => true do |t| |
||||
t.integer "tracker_id", :default => 0, :null => false |
||||
t.integer "old_status_id", :default => 0, :null => false |
||||
t.integer "new_status_id", :default => 0, :null => false |
||||
t.integer "role_id", :default => 0, :null => false |
||||
t.boolean "assignee", :default => false, :null => false |
||||
t.boolean "author", :default => false, :null => false |
||||
end |
||||
|
||||
add_index "workflows", ["new_status_id"], :name => "index_workflows_on_new_status_id" |
||||
add_index "workflows", ["old_status_id"], :name => "index_workflows_on_old_status_id" |
||||
add_index "workflows", ["role_id", "tracker_id", "old_status_id"], :name => "wkfs_role_tracker_old_status" |
||||
add_index "workflows", ["role_id"], :name => "index_workflows_on_role_id" |
||||
|
||||
true |
||||
|
||||
end |
||||
|
||||
def aggregated_versions |
||||
@@aggregated_versions ||= @@migrations.split.map do |m| |
||||
m.gsub(/_.*$/, '').to_i |
||||
end |
||||
end |
||||
|
||||
def all_versions |
||||
@@all_versions ||= ActiveRecord::Migrator.get_all_versions |
||||
end |
||||
|
||||
def schema_migrations_table_name |
||||
ActiveRecord::Migrator.schema_migrations_table_name |
||||
end |
||||
|
||||
def quoted_schema_migrations_table_name |
||||
ActiveRecord::Base.connection.quote_table_name(schema_migrations_table_name) |
||||
end |
||||
|
||||
def quoted_version_column_name |
||||
ActiveRecord::Base.connection.quote_table_name("version") |
||||
end |
||||
|
||||
def version_column_for_comparison |
||||
"#{quoted_schema_migrations_table_name}.#{quoted_version_column_name}" |
||||
end |
||||
|
||||
def quote_value s |
||||
ActiveRecord::Base.connection.quote(s) |
||||
end |
||||
|
||||
end |
||||
|
@ -1,336 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
# redMine - project management software |
||||
# Copyright (C) 2006 Jean-Philippe Lang |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License |
||||
# as published by the Free Software Foundation; either version 2 |
||||
# of the License, or (at your option) any later version. |
||||
# |
||||
# This program is distributed in the hope that it will be useful, |
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
# GNU General Public License for more details. |
||||
# |
||||
# You should have received a copy of the GNU General Public License |
||||
# along with this program; if not, write to the Free Software |
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
||||
|
||||
class Setup < ActiveRecord::Migration |
||||
|
||||
class User < ActiveRecord::Base; end |
||||
# model removed |
||||
class Permission < ActiveRecord::Base; end |
||||
|
||||
def self.up |
||||
create_table "attachments", :force => true do |t| |
||||
t.column "container_id", :integer, :default => 0, :null => false |
||||
t.column "container_type", :string, :limit => 30, :default => "", :null => false |
||||
t.column "filename", :string, :default => "", :null => false |
||||
t.column "disk_filename", :string, :default => "", :null => false |
||||
t.column "filesize", :integer, :default => 0, :null => false |
||||
t.column "content_type", :string, :limit => 60, :default => "" |
||||
t.column "digest", :string, :limit => 40, :default => "", :null => false |
||||
t.column "downloads", :integer, :default => 0, :null => false |
||||
t.column "author_id", :integer, :default => 0, :null => false |
||||
t.column "created_on", :timestamp |
||||
end |
||||
|
||||
create_table "auth_sources", :force => true do |t| |
||||
t.column "type", :string, :limit => 30, :default => "", :null => false |
||||
t.column "name", :string, :limit => 60, :default => "", :null => false |
||||
t.column "host", :string, :limit => 60 |
||||
t.column "port", :integer |
||||
t.column "account", :string, :limit => 60 |
||||
t.column "account_password", :string, :limit => 60 |
||||
t.column "base_dn", :string, :limit => 255 |
||||
t.column "attr_login", :string, :limit => 30 |
||||
t.column "attr_firstname", :string, :limit => 30 |
||||
t.column "attr_lastname", :string, :limit => 30 |
||||
t.column "attr_mail", :string, :limit => 30 |
||||
t.column "onthefly_register", :boolean, :default => false, :null => false |
||||
end |
||||
|
||||
create_table "custom_fields", :force => true do |t| |
||||
t.column "type", :string, :limit => 30, :default => "", :null => false |
||||
t.column "name", :string, :limit => 30, :default => "", :null => false |
||||
t.column "field_format", :string, :limit => 30, :default => "", :null => false |
||||
t.column "possible_values", :text |
||||
t.column "regexp", :string, :default => "" |
||||
t.column "min_length", :integer, :default => 0, :null => false |
||||
t.column "max_length", :integer, :default => 0, :null => false |
||||
t.column "is_required", :boolean, :default => false, :null => false |
||||
t.column "is_for_all", :boolean, :default => false, :null => false |
||||
end |
||||
|
||||
create_table "custom_fields_projects", :id => false, :force => true do |t| |
||||
t.column "custom_field_id", :integer, :default => 0, :null => false |
||||
t.column "project_id", :integer, :default => 0, :null => false |
||||
end |
||||
|
||||
create_table "custom_fields_trackers", :id => false, :force => true do |t| |
||||
t.column "custom_field_id", :integer, :default => 0, :null => false |
||||
t.column "tracker_id", :integer, :default => 0, :null => false |
||||
end |
||||
|
||||
create_table "custom_values", :force => true do |t| |
||||
t.column "customized_type", :string, :limit => 30, :default => "", :null => false |
||||
t.column "customized_id", :integer, :default => 0, :null => false |
||||
t.column "custom_field_id", :integer, :default => 0, :null => false |
||||
t.column "value", :text |
||||
end |
||||
|
||||
create_table "documents", :force => true do |t| |
||||
t.column "project_id", :integer, :default => 0, :null => false |
||||
t.column "category_id", :integer, :default => 0, :null => false |
||||
t.column "title", :string, :limit => 60, :default => "", :null => false |
||||
t.column "description", :text |
||||
t.column "created_on", :timestamp |
||||
end |
||||
|
||||
add_index "documents", ["project_id"], :name => "documents_project_id" |
||||
|
||||
create_table "enumerations", :force => true do |t| |
||||
t.column "opt", :string, :limit => 4, :default => "", :null => false |
||||
t.column "name", :string, :limit => 30, :default => "", :null => false |
||||
end |
||||
|
||||
create_table "issue_categories", :force => true do |t| |
||||
t.column "project_id", :integer, :default => 0, :null => false |
||||
t.column "name", :string, :limit => 30, :default => "", :null => false |
||||
end |
||||
|
||||
add_index "issue_categories", ["project_id"], :name => "issue_categories_project_id" |
||||
|
||||
create_table "issue_histories", :force => true do |t| |
||||
t.column "issue_id", :integer, :default => 0, :null => false |
||||
t.column "status_id", :integer, :default => 0, :null => false |
||||
t.column "author_id", :integer, :default => 0, :null => false |
||||
t.column "notes", :text |
||||
t.column "created_on", :timestamp |
||||
end |
||||
|
||||
add_index "issue_histories", ["issue_id"], :name => "issue_histories_issue_id" |
||||
|
||||
create_table "issue_statuses", :force => true do |t| |
||||
t.column "name", :string, :limit => 30, :default => "", :null => false |
||||
t.column "is_closed", :boolean, :default => false, :null => false |
||||
t.column "is_default", :boolean, :default => false, :null => false |
||||
t.column "html_color", :string, :limit => 6, :default => "FFFFFF", :null => false |
||||
end |
||||
|
||||
create_table "issues", :force => true do |t| |
||||
t.column "tracker_id", :integer, :default => 0, :null => false |
||||
t.column "project_id", :integer, :default => 0, :null => false |
||||
t.column "subject", :string, :default => "", :null => false |
||||
t.column "description", :text |
||||
t.column "due_date", :date |
||||
t.column "category_id", :integer |
||||
t.column "status_id", :integer, :default => 0, :null => false |
||||
t.column "assigned_to_id", :integer |
||||
t.column "priority_id", :integer, :default => 0, :null => false |
||||
t.column "fixed_version_id", :integer |
||||
t.column "author_id", :integer, :default => 0, :null => false |
||||
t.column "lock_version", :integer, :default => 0, :null => false |
||||
t.column "created_on", :timestamp |
||||
t.column "updated_on", :timestamp |
||||
end |
||||
|
||||
add_index "issues", ["project_id"], :name => "issues_project_id" |
||||
|
||||
create_table "members", :force => true do |t| |
||||
t.column "user_id", :integer, :default => 0, :null => false |
||||
t.column "project_id", :integer, :default => 0, :null => false |
||||
t.column "role_id", :integer, :default => 0, :null => false |
||||
t.column "created_on", :timestamp |
||||
end |
||||
|
||||
create_table "news", :force => true do |t| |
||||
t.column "project_id", :integer |
||||
t.column "title", :string, :limit => 60, :default => "", :null => false |
||||
t.column "summary", :string, :limit => 255, :default => "" |
||||
t.column "description", :text |
||||
t.column "author_id", :integer, :default => 0, :null => false |
||||
t.column "created_on", :timestamp |
||||
end |
||||
|
||||
add_index "news", ["project_id"], :name => "news_project_id" |
||||
|
||||
create_table "permissions", :force => true do |t| |
||||
t.column "controller", :string, :limit => 30, :default => "", :null => false |
||||
t.column "action", :string, :limit => 30, :default => "", :null => false |
||||
t.column "description", :string, :limit => 60, :default => "", :null => false |
||||
t.column "is_public", :boolean, :default => false, :null => false |
||||
t.column "sort", :integer, :default => 0, :null => false |
||||
t.column "mail_option", :boolean, :default => false, :null => false |
||||
t.column "mail_enabled", :boolean, :default => false, :null => false |
||||
end |
||||
|
||||
create_table "permissions_roles", :id => false, :force => true do |t| |
||||
t.column "permission_id", :integer, :default => 0, :null => false |
||||
t.column "role_id", :integer, :default => 0, :null => false |
||||
end |
||||
|
||||
add_index "permissions_roles", ["role_id"], :name => "permissions_roles_role_id" |
||||
|
||||
create_table "projects", :force => true do |t| |
||||
t.column "name", :string, :limit => 30, :default => "", :null => false |
||||
t.column "description", :string, :default => "", :null => false |
||||
t.column "homepage", :string, :limit => 60, :default => "" |
||||
t.column "is_public", :boolean, :default => true, :null => false |
||||
t.column "parent_id", :integer |
||||
t.column "projects_count", :integer, :default => 0 |
||||
t.column "created_on", :timestamp |
||||
t.column "updated_on", :timestamp |
||||
end |
||||
|
||||
create_table "roles", :force => true do |t| |
||||
t.column "name", :string, :limit => 30, :default => "", :null => false |
||||
end |
||||
|
||||
create_table "tokens", :force => true do |t| |
||||
t.column "user_id", :integer, :default => 0, :null => false |
||||
t.column "action", :string, :limit => 30, :default => "", :null => false |
||||
t.column "value", :string, :limit => 40, :default => "", :null => false |
||||
t.column "created_on", :datetime, :null => false |
||||
end |
||||
|
||||
create_table "trackers", :force => true do |t| |
||||
t.column "name", :string, :limit => 30, :default => "", :null => false |
||||
t.column "is_in_chlog", :boolean, :default => false, :null => false |
||||
end |
||||
|
||||
create_table "users", :force => true do |t| |
||||
t.column "login", :string, :limit => 30, :default => "", :null => false |
||||
t.column "hashed_password", :string, :limit => 40, :default => "", :null => false |
||||
t.column "firstname", :string, :limit => 30, :default => "", :null => false |
||||
t.column "lastname", :string, :limit => 30, :default => "", :null => false |
||||
t.column "mail", :string, :limit => 60, :default => "", :null => false |
||||
t.column "mail_notification", :boolean, :default => true, :null => false |
||||
t.column "admin", :boolean, :default => false, :null => false |
||||
t.column "status", :integer, :default => 1, :null => false |
||||
t.column "last_login_on", :datetime |
||||
t.column "language", :string, :limit => 2, :default => "" |
||||
t.column "auth_source_id", :integer |
||||
t.column "created_on", :timestamp |
||||
t.column "updated_on", :timestamp |
||||
end |
||||
|
||||
create_table "versions", :force => true do |t| |
||||
t.column "project_id", :integer, :default => 0, :null => false |
||||
t.column "name", :string, :limit => 30, :default => "", :null => false |
||||
t.column "description", :string, :default => "" |
||||
t.column "effective_date", :date |
||||
t.column "created_on", :timestamp |
||||
t.column "updated_on", :timestamp |
||||
end |
||||
|
||||
add_index "versions", ["project_id"], :name => "versions_project_id" |
||||
|
||||
create_table "workflows", :force => true do |t| |
||||
t.column "tracker_id", :integer, :default => 0, :null => false |
||||
t.column "old_status_id", :integer, :default => 0, :null => false |
||||
t.column "new_status_id", :integer, :default => 0, :null => false |
||||
t.column "role_id", :integer, :default => 0, :null => false |
||||
end |
||||
|
||||
# project |
||||
Permission.create :controller => "projects", :action => "show", :description => "label_overview", :sort => 100, :is_public => true |
||||
Permission.create :controller => "projects", :action => "changelog", :description => "label_change_log", :sort => 105, :is_public => true |
||||
Permission.create :controller => "reports", :action => "issue_report", :description => "label_report_plural", :sort => 110, :is_public => true |
||||
Permission.create :controller => "projects", :action => "settings", :description => "label_settings", :sort => 150 |
||||
Permission.create :controller => "projects", :action => "edit", :description => "button_edit", :sort => 151 |
||||
# members |
||||
Permission.create :controller => "projects", :action => "list_members", :description => "button_list", :sort => 200, :is_public => true |
||||
Permission.create :controller => "projects", :action => "add_member", :description => "button_add", :sort => 220 |
||||
Permission.create :controller => "members", :action => "edit", :description => "button_edit", :sort => 221 |
||||
Permission.create :controller => "members", :action => "destroy", :description => "button_delete", :sort => 222 |
||||
# versions |
||||
Permission.create :controller => "projects", :action => "add_version", :description => "button_add", :sort => 320 |
||||
Permission.create :controller => "versions", :action => "edit", :description => "button_edit", :sort => 321 |
||||
Permission.create :controller => "versions", :action => "destroy", :description => "button_delete", :sort => 322 |
||||
# issue categories |
||||
Permission.create :controller => "projects", :action => "add_issue_category", :description => "button_add", :sort => 420 |
||||
Permission.create :controller => "issue_categories", :action => "edit", :description => "button_edit", :sort => 421 |
||||
Permission.create :controller => "issue_categories", :action => "destroy", :description => "button_delete", :sort => 422 |
||||
# issues |
||||
Permission.create :controller => "projects", :action => "list_issues", :description => "button_list", :sort => 1000, :is_public => true |
||||
Permission.create :controller => "projects", :action => "export_issues_csv", :description => "label_export_csv", :sort => 1001, :is_public => true |
||||
Permission.create :controller => "issues", :action => "show", :description => "button_view", :sort => 1005, :is_public => true |
||||
Permission.create :controller => "issues", :action => "download", :description => "button_download", :sort => 1010, :is_public => true |
||||
Permission.create :controller => "projects", :action => "add_issue", :description => "button_add", :sort => 1050, :mail_option => 1, :mail_enabled => 1 |
||||
Permission.create :controller => "issues", :action => "edit", :description => "button_edit", :sort => 1055 |
||||
Permission.create :controller => "issues", :action => "change_status", :description => "label_change_status", :sort => 1060, :mail_option => 1, :mail_enabled => 1 |
||||
Permission.create :controller => "issues", :action => "destroy", :description => "button_delete", :sort => 1065 |
||||
Permission.create :controller => "issues", :action => "add_attachment", :description => "label_attachment_new", :sort => 1070 |
||||
Permission.create :controller => "issues", :action => "destroy_attachment", :description => "label_attachment_delete", :sort => 1075 |
||||
# news |
||||
Permission.create :controller => "projects", :action => "list_news", :description => "button_list", :sort => 1100, :is_public => true |
||||
Permission.create :controller => "news", :action => "show", :description => "button_view", :sort => 1101, :is_public => true |
||||
Permission.create :controller => "projects", :action => "add_news", :description => "button_add", :sort => 1120 |
||||
Permission.create :controller => "news", :action => "edit", :description => "button_edit", :sort => 1121 |
||||
Permission.create :controller => "news", :action => "destroy", :description => "button_delete", :sort => 1122 |
||||
# documents |
||||
Permission.create :controller => "projects", :action => "list_documents", :description => "button_list", :sort => 1200, :is_public => true |
||||
Permission.create :controller => "documents", :action => "show", :description => "button_view", :sort => 1201, :is_public => true |
||||
Permission.create :controller => "documents", :action => "download", :description => "button_download", :sort => 1202, :is_public => true |
||||
Permission.create :controller => "projects", :action => "add_document", :description => "button_add", :sort => 1220 |
||||
Permission.create :controller => "documents", :action => "edit", :description => "button_edit", :sort => 1221 |
||||
Permission.create :controller => "documents", :action => "destroy", :description => "button_delete", :sort => 1222 |
||||
Permission.create :controller => "documents", :action => "add_attachment", :description => "label_attachment_new", :sort => 1223 |
||||
Permission.create :controller => "documents", :action => "destroy_attachment", :description => "label_attachment_delete", :sort => 1224 |
||||
# files |
||||
Permission.create :controller => "projects", :action => "list_files", :description => "button_list", :sort => 1300, :is_public => true |
||||
Permission.create :controller => "versions", :action => "download", :description => "button_download", :sort => 1301, :is_public => true |
||||
Permission.create :controller => "projects", :action => "add_file", :description => "button_add", :sort => 1320 |
||||
Permission.create :controller => "versions", :action => "destroy_file", :description => "button_delete", :sort => 1322 |
||||
|
||||
# create default administrator account |
||||
user = User.create :login => "admin", |
||||
:hashed_password => "d033e22ae348aeb5660fc2140aec35850c4da997", |
||||
:admin => true, |
||||
:firstname => "OpenProject", |
||||
:lastname => "Admin", |
||||
:mail => "admin@example.net", |
||||
:mail_notification => true, |
||||
:language => "en", |
||||
:status => 1 |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :attachments |
||||
drop_table :auth_sources |
||||
drop_table :custom_fields |
||||
drop_table :custom_fields_projects |
||||
drop_table :custom_fields_trackers |
||||
drop_table :custom_values |
||||
drop_table :documents |
||||
drop_table :enumerations |
||||
drop_table :issue_categories |
||||
drop_table :issue_histories |
||||
drop_table :issue_statuses |
||||
drop_table :issues |
||||
drop_table :members |
||||
drop_table :news |
||||
drop_table :permissions |
||||
drop_table :permissions_roles |
||||
drop_table :projects |
||||
drop_table :roles |
||||
drop_table :trackers |
||||
drop_table :tokens |
||||
drop_table :users |
||||
drop_table :versions |
||||
drop_table :workflows |
||||
end |
||||
end |
@ -1,24 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class IssueMove < ActiveRecord::Migration |
||||
# model removed |
||||
class Permission < ActiveRecord::Base; end |
||||
|
||||
def self.up |
||||
Permission.create :controller => "projects", :action => "move_issues", :description => "button_move", :sort => 1061, :mail_option => 0, :mail_enabled => 0 |
||||
end |
||||
|
||||
def self.down |
||||
Permission.find(:first, :conditions => ["controller=? and action=?", 'projects', 'move_issues']).destroy |
||||
end |
||||
end |
@ -1,24 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class IssueAddNote < ActiveRecord::Migration |
||||
# model removed |
||||
class Permission < ActiveRecord::Base; end |
||||
|
||||
def self.up |
||||
Permission.create :controller => "issues", :action => "add_note", :description => "label_add_note", :sort => 1057, :mail_option => 1, :mail_enabled => 0 |
||||
end |
||||
|
||||
def self.down |
||||
Permission.find(:first, :conditions => ["controller=? and action=?", 'issues', 'add_note']).destroy |
||||
end |
||||
end |
@ -1,26 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class ExportPdf < ActiveRecord::Migration |
||||
# model removed |
||||
class Permission < ActiveRecord::Base; end |
||||
|
||||
def self.up |
||||
Permission.create :controller => "projects", :action => "export_issues_pdf", :description => "label_export_pdf", :sort => 1002, :is_public => true, :mail_option => 0, :mail_enabled => 0 |
||||
Permission.create :controller => "issues", :action => "export_pdf", :description => "label_export_pdf", :sort => 1015, :is_public => true, :mail_option => 0, :mail_enabled => 0 |
||||
end |
||||
|
||||
def self.down |
||||
Permission.find(:first, :conditions => ["controller=? and action=?", 'projects', 'export_issues_pdf']).destroy |
||||
Permission.find(:first, :conditions => ["controller=? and action=?", 'issues', 'export_pdf']).destroy |
||||
end |
||||
end |
@ -1,23 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class IssueStartDate < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :issues, :start_date, :date |
||||
add_column :issues, :done_ratio, :integer, :default => 0, :null => false |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :issues, :start_date |
||||
remove_column :issues, :done_ratio |
||||
end |
||||
end |
@ -1,28 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CalendarAndActivity < ActiveRecord::Migration |
||||
# model removed |
||||
class Permission < ActiveRecord::Base; end |
||||
|
||||
def self.up |
||||
Permission.create :controller => "projects", :action => "activity", :description => "label_activity", :sort => 160, :is_public => true, :mail_option => 0, :mail_enabled => 0 |
||||
Permission.create :controller => "projects", :action => "calendar", :description => "label_calendar", :sort => 165, :is_public => true, :mail_option => 0, :mail_enabled => 0 |
||||
Permission.create :controller => "projects", :action => "gantt", :description => "label_gantt", :sort => 166, :is_public => true, :mail_option => 0, :mail_enabled => 0 |
||||
end |
||||
|
||||
def self.down |
||||
Permission.find(:first, :conditions => ["controller=? and action=?", 'projects', 'activity']).destroy |
||||
Permission.find(:first, :conditions => ["controller=? and action=?", 'projects', 'calendar']).destroy |
||||
Permission.find(:first, :conditions => ["controller=? and action=?", 'projects', 'gantt']).destroy |
||||
end |
||||
end |
@ -1,68 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateJournals < ActiveRecord::Migration |
||||
|
||||
# model removed, but needed for data migration |
||||
class IssueHistory < ActiveRecord::Base; belongs_to :issue; end |
||||
# model removed |
||||
class Permission < ActiveRecord::Base; end |
||||
|
||||
def self.up |
||||
create_table :journals, :force => true do |t| |
||||
t.column "journalized_id", :integer, :default => 0, :null => false |
||||
t.column "journalized_type", :string, :limit => 30, :default => "", :null => false |
||||
t.column "user_id", :integer, :default => 0, :null => false |
||||
t.column "notes", :text |
||||
t.column "created_on", :datetime, :null => false |
||||
end |
||||
create_table :journal_details, :force => true do |t| |
||||
t.column "journal_id", :integer, :default => 0, :null => false |
||||
t.column "property", :string, :limit => 30, :default => "", :null => false |
||||
t.column "prop_key", :string, :limit => 30, :default => "", :null => false |
||||
t.column "old_value", :string |
||||
t.column "value", :string |
||||
end |
||||
|
||||
# indexes |
||||
add_index "journals", ["journalized_id", "journalized_type"], :name => "journals_journalized_id" |
||||
add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id" |
||||
|
||||
Permission.create :controller => "issues", :action => "history", :description => "label_history", :sort => 1006, :is_public => true, :mail_option => 0, :mail_enabled => 0 |
||||
|
||||
# data migration |
||||
IssueHistory.find(:all, :include => :issue).each {|h| |
||||
j = Journal.new(:journalized => h.issue, :user_id => h.author_id, :notes => h.notes, :created_on => h.created_on) |
||||
j.details << JournalDetail.new(:property => 'attr', :prop_key => 'status_id', :value => h.status_id) |
||||
j.save |
||||
} |
||||
|
||||
drop_table :issue_histories |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :journal_details |
||||
drop_table :journals |
||||
|
||||
create_table "issue_histories", :force => true do |t| |
||||
t.column "issue_id", :integer, :default => 0, :null => false |
||||
t.column "status_id", :integer, :default => 0, :null => false |
||||
t.column "author_id", :integer, :default => 0, :null => false |
||||
t.column "notes", :text, :default => nil |
||||
t.column "created_on", :timestamp |
||||
end |
||||
|
||||
add_index "issue_histories", ["issue_id"], :name => "issue_histories_issue_id" |
||||
|
||||
Permission.find(:first, :conditions => ["controller=? and action=?", 'issues', 'history']).destroy |
||||
end |
||||
end |
@ -1,24 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateUserPreferences < ActiveRecord::Migration |
||||
def self.up |
||||
create_table :user_preferences do |t| |
||||
t.column "user_id", :integer, :default => 0, :null => false |
||||
t.column "others", :text |
||||
end |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :user_preferences |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddHideMailPref < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :user_preferences, :hide_mail, :boolean, :default => false |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :user_preferences, :hide_mail |
||||
end |
||||
end |
@ -1,28 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateComments < ActiveRecord::Migration |
||||
def self.up |
||||
create_table :comments do |t| |
||||
t.column :commented_type, :string, :limit => 30, :default => "", :null => false |
||||
t.column :commented_id, :integer, :default => 0, :null => false |
||||
t.column :author_id, :integer, :default => 0, :null => false |
||||
t.column :comments, :text |
||||
t.column :created_on, :datetime, :null => false |
||||
t.column :updated_on, :datetime, :null => false |
||||
end |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :comments |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddNewsCommentsCount < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :news, :comments_count, :integer, :default => 0, :null => false |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :news, :comments_count |
||||
end |
||||
end |
@ -1,26 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddCommentsPermissions < ActiveRecord::Migration |
||||
# model removed |
||||
class Permission < ActiveRecord::Base; end |
||||
|
||||
def self.up |
||||
Permission.create :controller => "news", :action => "add_comment", :description => "label_comment_add", :sort => 1130, :is_public => false, :mail_option => 0, :mail_enabled => 0 |
||||
Permission.create :controller => "news", :action => "destroy_comment", :description => "label_comment_delete", :sort => 1133, :is_public => false, :mail_option => 0, :mail_enabled => 0 |
||||
end |
||||
|
||||
def self.down |
||||
Permission.find(:first, :conditions => ["controller=? and action=?", 'news', 'add_comment']).destroy |
||||
Permission.find(:first, :conditions => ["controller=? and action=?", 'news', 'destroy_comment']).destroy |
||||
end |
||||
end |
@ -1,27 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateQueries < ActiveRecord::Migration |
||||
def self.up |
||||
create_table :queries, :force => true do |t| |
||||
t.column "project_id", :integer |
||||
t.column "name", :string, :default => "", :null => false |
||||
t.column "filters", :text |
||||
t.column "user_id", :integer, :default => 0, :null => false |
||||
t.column "is_public", :boolean, :default => false, :null => false |
||||
end |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :queries |
||||
end |
||||
end |
@ -1,24 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddQueriesPermissions < ActiveRecord::Migration |
||||
# model removed |
||||
class Permission < ActiveRecord::Base; end |
||||
|
||||
def self.up |
||||
Permission.create :controller => "projects", :action => "add_query", :description => "button_create", :sort => 600, :is_public => false, :mail_option => 0, :mail_enabled => 0 |
||||
end |
||||
|
||||
def self.down |
||||
Permission.find(:first, :conditions => ["controller=? and action=?", 'projects', 'add_query']).destroy |
||||
end |
||||
end |
@ -1,24 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateRepositories < ActiveRecord::Migration |
||||
def self.up |
||||
create_table :repositories, :force => true do |t| |
||||
t.column "project_id", :integer, :default => 0, :null => false |
||||
t.column "url", :string, :default => "", :null => false |
||||
end |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :repositories |
||||
end |
||||
end |
@ -1,34 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddRepositoriesPermissions < ActiveRecord::Migration |
||||
# model removed |
||||
class Permission < ActiveRecord::Base; end |
||||
|
||||
def self.up |
||||
Permission.create :controller => "repositories", :action => "show", :description => "button_view", :sort => 1450, :is_public => true |
||||
Permission.create :controller => "repositories", :action => "browse", :description => "label_browse", :sort => 1460, :is_public => true |
||||
Permission.create :controller => "repositories", :action => "entry", :description => "entry", :sort => 1462, :is_public => true |
||||
Permission.create :controller => "repositories", :action => "revisions", :description => "label_view_revisions", :sort => 1470, :is_public => true |
||||
Permission.create :controller => "repositories", :action => "revision", :description => "label_view_revisions", :sort => 1472, :is_public => true |
||||
Permission.create :controller => "repositories", :action => "diff", :description => "diff", :sort => 1480, :is_public => true |
||||
end |
||||
|
||||
def self.down |
||||
Permission.find(:first, :conditions => ["controller=? and action=?", 'repositories', 'show']).destroy |
||||
Permission.find(:first, :conditions => ["controller=? and action=?", 'repositories', 'browse']).destroy |
||||
Permission.find(:first, :conditions => ["controller=? and action=?", 'repositories', 'entry']).destroy |
||||
Permission.find(:first, :conditions => ["controller=? and action=?", 'repositories', 'revisions']).destroy |
||||
Permission.find(:first, :conditions => ["controller=? and action=?", 'repositories', 'revision']).destroy |
||||
Permission.find(:first, :conditions => ["controller=? and action=?", 'repositories', 'diff']).destroy |
||||
end |
||||
end |
@ -1,24 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateSettings < ActiveRecord::Migration |
||||
def self.up |
||||
create_table :settings, :force => true do |t| |
||||
t.column "name", :string, :limit => 30, :default => "", :null => false |
||||
t.column "value", :text |
||||
end |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :settings |
||||
end |
||||
end |
@ -1,30 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class SetDocAndFilesNotifications < ActiveRecord::Migration |
||||
# model removed |
||||
class Permission < ActiveRecord::Base; end |
||||
|
||||
def self.up |
||||
Permission.find_by_controller_and_action("projects", "add_file").update_attribute(:mail_option, true) |
||||
Permission.find_by_controller_and_action("projects", "add_document").update_attribute(:mail_option, true) |
||||
Permission.find_by_controller_and_action("documents", "add_attachment").update_attribute(:mail_option, true) |
||||
Permission.find_by_controller_and_action("issues", "add_attachment").update_attribute(:mail_option, true) |
||||
end |
||||
|
||||
def self.down |
||||
Permission.find_by_controller_and_action("projects", "add_file").update_attribute(:mail_option, false) |
||||
Permission.find_by_controller_and_action("projects", "add_document").update_attribute(:mail_option, false) |
||||
Permission.find_by_controller_and_action("documents", "add_attachment").update_attribute(:mail_option, false) |
||||
Permission.find_by_controller_and_action("issues", "add_attachment").update_attribute(:mail_option, false) |
||||
end |
||||
end |
@ -1,22 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddIssueStatusPosition < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :issue_statuses, :position, :integer, :default => 1 |
||||
IssueStatus.find(:all).each_with_index {|status, i| status.update_attribute(:position, i+1)} |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :issue_statuses, :position |
||||
end |
||||
end |
@ -1,22 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddRolePosition < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :roles, :position, :integer, :default => 1 |
||||
Role.find(:all).each_with_index {|role, i| role.update_attribute(:position, i+1)} |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :roles, :position |
||||
end |
||||
end |
@ -1,78 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddTrackerPosition < ActiveRecord::Migration |
||||
|
||||
class Tracker < ActiveRecord::Base |
||||
before_destroy :check_integrity |
||||
has_many :issues |
||||
has_many :workflows, :dependent => :delete_all do |
||||
def copy(source_tracker) |
||||
Workflow.copy(source_tracker, nil, proxy_association.owner, nil) |
||||
end |
||||
end |
||||
|
||||
has_and_belongs_to_many :projects |
||||
has_and_belongs_to_many :custom_fields, :class_name => 'WorkPackageCustomField', :join_table => "#{table_name_prefix}custom_fields_trackers#{table_name_suffix}", :association_foreign_key => 'custom_field_id' |
||||
acts_as_list |
||||
|
||||
validates_presence_of :name |
||||
validates_uniqueness_of :name |
||||
validates_length_of :name, :maximum => 30 |
||||
|
||||
def to_s; name end |
||||
|
||||
def <=>(tracker) |
||||
name <=> tracker.name |
||||
end |
||||
|
||||
def self.all |
||||
find(:all, :order => 'position') |
||||
end |
||||
|
||||
# Returns an array of IssueStatus that are used |
||||
# in the tracker's workflows |
||||
def issue_statuses |
||||
if @issue_statuses |
||||
return @issue_statuses |
||||
elsif new_record? |
||||
return [] |
||||
end |
||||
|
||||
ids = Workflow. |
||||
connection.select_rows("SELECT DISTINCT old_status_id, new_status_id FROM #{Workflow.table_name} WHERE tracker_id = #{id}"). |
||||
flatten. |
||||
uniq |
||||
|
||||
@issue_statuses = IssueStatus.find_all_by_id(ids).sort |
||||
end |
||||
|
||||
private |
||||
def check_integrity |
||||
raise "Can't delete tracker" if Issue.find(:first, :conditions => ["tracker_id=?", self.id]) |
||||
end |
||||
end |
||||
|
||||
def self.up |
||||
|
||||
Object.const_set("Tracker", AddTrackerPosition::Tracker) |
||||
|
||||
add_column :trackers, :position, :integer, :default => 1 |
||||
Tracker.find(:all).each_with_index {|tracker, i| tracker.update_attribute(:position, i+1)} |
||||
|
||||
Object.send(:remove_const, :Tracker) |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :trackers, :position |
||||
end |
||||
end |
@ -1,25 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class SerializePossiblesValues < ActiveRecord::Migration |
||||
def self.up |
||||
CustomField.find(:all).each do |field| |
||||
if field.possible_values and field.possible_values.is_a? String |
||||
field.possible_values = field.possible_values.split('|') |
||||
field.save |
||||
end |
||||
end |
||||
end |
||||
|
||||
def self.down |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddTrackerIsInRoadmap < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :trackers, :is_in_roadmap, :boolean, :default => true, :null => false |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :trackers, :is_in_roadmap |
||||
end |
||||
end |
@ -1,24 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddRoadmapPermission < ActiveRecord::Migration |
||||
# model removed |
||||
class Permission < ActiveRecord::Base; end |
||||
|
||||
def self.up |
||||
Permission.create :controller => "projects", :action => "roadmap", :description => "label_roadmap", :sort => 107, :is_public => true, :mail_option => 0, :mail_enabled => 0 |
||||
end |
||||
|
||||
def self.down |
||||
Permission.find(:first, :conditions => ["controller=? and action=?", 'projects', 'roadmap']).destroy |
||||
end |
||||
end |
@ -1,24 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddSearchPermission < ActiveRecord::Migration |
||||
# model removed |
||||
class Permission < ActiveRecord::Base; end |
||||
|
||||
def self.up |
||||
Permission.create :controller => "projects", :action => "search", :description => "label_search", :sort => 130, :is_public => true, :mail_option => 0, :mail_enabled => 0 |
||||
end |
||||
|
||||
def self.down |
||||
Permission.find_by_controller_and_action('projects', 'search').destroy |
||||
end |
||||
end |
@ -1,23 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddRepositoryLoginAndPassword < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :repositories, :login, :string, :limit => 60, :default => "" |
||||
add_column :repositories, :password, :string, :limit => 60, :default => "" |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :repositories, :login |
||||
remove_column :repositories, :password |
||||
end |
||||
end |
@ -1,26 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateWikis < ActiveRecord::Migration |
||||
def self.up |
||||
create_table :wikis do |t| |
||||
t.column :project_id, :integer, :null => false |
||||
t.column :start_page, :string, :limit => 255, :null => false |
||||
t.column :status, :integer, :default => 1, :null => false |
||||
end |
||||
add_index :wikis, :project_id, :name => :wikis_project_id |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :wikis |
||||
end |
||||
end |
@ -1,26 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateWikiPages < ActiveRecord::Migration |
||||
def self.up |
||||
create_table :wiki_pages do |t| |
||||
t.column :wiki_id, :integer, :null => false |
||||
t.column :title, :string, :limit => 255, :null => false |
||||
t.column :created_on, :datetime, :null => false |
||||
end |
||||
add_index :wiki_pages, [:wiki_id, :title], :name => :wiki_pages_wiki_id_title |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :wiki_pages |
||||
end |
||||
end |
@ -1,42 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateWikiContents < ActiveRecord::Migration |
||||
def self.up |
||||
create_table :wiki_contents do |t| |
||||
t.column :page_id, :integer, :null => false |
||||
t.column :author_id, :integer |
||||
t.column :text, :text |
||||
t.column :comments, :string, :limit => 255, :default => "" |
||||
t.column :updated_on, :datetime, :null => false |
||||
t.column :version, :integer, :null => false |
||||
end |
||||
add_index :wiki_contents, :page_id, :name => :wiki_contents_page_id |
||||
|
||||
create_table :wiki_content_versions do |t| |
||||
t.column :wiki_content_id, :integer, :null => false |
||||
t.column :page_id, :integer, :null => false |
||||
t.column :author_id, :integer |
||||
t.column :data, :binary |
||||
t.column :compression, :string, :limit => 6, :default => "" |
||||
t.column :comments, :string, :limit => 255, :default => "" |
||||
t.column :updated_on, :datetime, :null => false |
||||
t.column :version, :integer, :null => false |
||||
end |
||||
add_index :wiki_content_versions, :wiki_content_id, :name => :wiki_content_versions_wcid |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :wiki_contents |
||||
drop_table :wiki_content_versions |
||||
end |
||||
end |
@ -1,24 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddProjectsFeedsPermissions < ActiveRecord::Migration |
||||
# model removed |
||||
class Permission < ActiveRecord::Base; end |
||||
|
||||
def self.up |
||||
Permission.create :controller => "projects", :action => "feeds", :description => "label_feed_plural", :sort => 132, :is_public => true, :mail_option => 0, :mail_enabled => 0 |
||||
end |
||||
|
||||
def self.down |
||||
Permission.find_by_controller_and_action('projects', 'feeds').destroy |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddRepositoryRootUrl < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :repositories, :root_url, :string, :limit => 255, :default => "" |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :repositories, :root_url |
||||
end |
||||
end |
@ -1,36 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateTimeEntries < ActiveRecord::Migration |
||||
def self.up |
||||
create_table :time_entries do |t| |
||||
t.column :project_id, :integer, :null => false |
||||
t.column :user_id, :integer, :null => false |
||||
t.column :issue_id, :integer |
||||
t.column :hours, :float, :null => false |
||||
t.column :comments, :string, :limit => 255 |
||||
t.column :activity_id, :integer, :null => false |
||||
t.column :spent_on, :date, :null => false |
||||
t.column :tyear, :integer, :null => false |
||||
t.column :tmonth, :integer, :null => false |
||||
t.column :tweek, :integer, :null => false |
||||
t.column :created_on, :datetime, :null => false |
||||
t.column :updated_on, :datetime, :null => false |
||||
end |
||||
add_index :time_entries, [:project_id], :name => :time_entries_project_id |
||||
add_index :time_entries, [:issue_id], :name => :time_entries_issue_id |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :time_entries |
||||
end |
||||
end |
@ -1,24 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddTimelogPermissions < ActiveRecord::Migration |
||||
# model removed |
||||
class Permission < ActiveRecord::Base; end |
||||
|
||||
def self.up |
||||
Permission.create :controller => "timelog", :action => "edit", :description => "button_log_time", :sort => 1520, :is_public => false, :mail_option => 0, :mail_enabled => 0 |
||||
end |
||||
|
||||
def self.down |
||||
Permission.find_by_controller_and_action('timelog', 'edit').destroy |
||||
end |
||||
end |
@ -1,28 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateChangesets < ActiveRecord::Migration |
||||
def self.up |
||||
create_table :changesets do |t| |
||||
t.column :repository_id, :integer, :null => false |
||||
t.column :revision, :integer, :null => false |
||||
t.column :committer, :string, :limit => 30 |
||||
t.column :committed_on, :datetime, :null => false |
||||
t.column :comments, :text |
||||
end |
||||
add_index :changesets, [:repository_id, :revision], :unique => true, :name => :changesets_repos_rev |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :changesets |
||||
end |
||||
end |
@ -1,28 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateChanges < ActiveRecord::Migration |
||||
def self.up |
||||
create_table :changes do |t| |
||||
t.column :changeset_id, :integer, :null => false |
||||
t.column :action, :string, :limit => 1, :default => "", :null => false |
||||
t.column :path, :string, :default => "", :null => false |
||||
t.column :from_path, :string |
||||
t.column :from_revision, :integer |
||||
end |
||||
add_index :changes, [:changeset_id], :name => :changesets_changeset_id |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :changes |
||||
end |
||||
end |
@ -1,22 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddChangesetCommitDate < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :changesets, :commit_date, :date |
||||
Changeset.update_all "commit_date = committed_on" |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :changesets, :commit_date |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddProjectIdentifier < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :projects, :identifier, :string, :limit => 20 |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :projects, :identifier |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddCustomFieldIsFilter < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :custom_fields, :is_filter, :boolean, :null => false, :default => false |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :custom_fields, :is_filter |
||||
end |
||||
end |
@ -1,25 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateWatchers < ActiveRecord::Migration |
||||
def self.up |
||||
create_table :watchers do |t| |
||||
t.column :watchable_type, :string, :default => "", :null => false |
||||
t.column :watchable_id, :integer, :default => 0, :null => false |
||||
t.column :user_id, :integer |
||||
end |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :watchers |
||||
end |
||||
end |
@ -1,25 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateChangesetsIssues < ActiveRecord::Migration |
||||
def self.up |
||||
create_table :changesets_issues, :id => false do |t| |
||||
t.column :changeset_id, :integer, :null => false |
||||
t.column :issue_id, :integer, :null => false |
||||
end |
||||
add_index :changesets_issues, [:changeset_id, :issue_id], :unique => true, :name => :changesets_issues_ids |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :changesets_issues |
||||
end |
||||
end |
@ -1,25 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class RenameCommentToComments < ActiveRecord::Migration |
||||
def self.up |
||||
rename_column(:comments, :comment, :comments) if ActiveRecord::Base.connection.columns(Comment.table_name).detect{|c| c.name == "comment"} |
||||
rename_column(:wiki_contents, :comment, :comments) if ActiveRecord::Base.connection.columns(WikiContent.table_name).detect{|c| c.name == "comment"} |
||||
rename_column(:wiki_content_versions, :comment, :comments) if ActiveRecord::Base.connection.columns("wiki_content_versions").detect{|c| c.name == "comment"} |
||||
rename_column(:time_entries, :comment, :comments) if ActiveRecord::Base.connection.columns(TimeEntry.table_name).detect{|c| c.name == "comment"} |
||||
rename_column(:changesets, :comment, :comments) if ActiveRecord::Base.connection.columns(Changeset.table_name).detect{|c| c.name == "comment"} |
||||
end |
||||
|
||||
def self.down |
||||
raise IrreversibleMigration |
||||
end |
||||
end |
@ -1,26 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateIssueRelations < ActiveRecord::Migration |
||||
def self.up |
||||
create_table :issue_relations do |t| |
||||
t.column :issue_from_id, :integer, :null => false |
||||
t.column :issue_to_id, :integer, :null => false |
||||
t.column :relation_type, :string, :default => "", :null => false |
||||
t.column :delay, :integer |
||||
end |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :issue_relations |
||||
end |
||||
end |
@ -1,26 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddRelationsPermissions < ActiveRecord::Migration |
||||
# model removed |
||||
class Permission < ActiveRecord::Base; end |
||||
|
||||
def self.up |
||||
Permission.create :controller => "issue_relations", :action => "new", :description => "label_relation_new", :sort => 1080, :is_public => false, :mail_option => 0, :mail_enabled => 0 |
||||
Permission.create :controller => "issue_relations", :action => "destroy", :description => "label_relation_delete", :sort => 1085, :is_public => false, :mail_option => 0, :mail_enabled => 0 |
||||
end |
||||
|
||||
def self.down |
||||
Permission.find_by_controller_and_action("issue_relations", "new").destroy |
||||
Permission.find_by_controller_and_action("issue_relations", "destroy").destroy |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class SetLanguageLengthToFive < ActiveRecord::Migration |
||||
def self.up |
||||
change_column :users, :language, :string, :limit => 5, :default => "" |
||||
end |
||||
|
||||
def self.down |
||||
raise IrreversibleMigration |
||||
end |
||||
end |
@ -1,30 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateBoards < ActiveRecord::Migration |
||||
def self.up |
||||
create_table :boards do |t| |
||||
t.column :project_id, :integer, :null => false |
||||
t.column :name, :string, :default => "", :null => false |
||||
t.column :description, :string |
||||
t.column :position, :integer, :default => 1 |
||||
t.column :topics_count, :integer, :default => 0, :null => false |
||||
t.column :messages_count, :integer, :default => 0, :null => false |
||||
t.column :last_message_id, :integer |
||||
end |
||||
add_index :boards, [:project_id], :name => :boards_project_id |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :boards |
||||
end |
||||
end |
@ -1,33 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateMessages < ActiveRecord::Migration |
||||
def self.up |
||||
create_table :messages do |t| |
||||
t.column :board_id, :integer, :null => false |
||||
t.column :parent_id, :integer |
||||
t.column :subject, :string, :default => "", :null => false |
||||
t.column :content, :text |
||||
t.column :author_id, :integer |
||||
t.column :replies_count, :integer, :default => 0, :null => false |
||||
t.column :last_reply_id, :integer |
||||
t.column :created_on, :datetime, :null => false |
||||
t.column :updated_on, :datetime, :null => false |
||||
end |
||||
add_index :messages, [:board_id], :name => :messages_board_id |
||||
add_index :messages, [:parent_id], :name => :messages_parent_id |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :messages |
||||
end |
||||
end |
@ -1,28 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddBoardsPermissions < ActiveRecord::Migration |
||||
# model removed |
||||
class Permission < ActiveRecord::Base; end |
||||
|
||||
def self.up |
||||
Permission.create :controller => "boards", :action => "new", :description => "button_add", :sort => 2000, :is_public => false, :mail_option => 0, :mail_enabled => 0 |
||||
Permission.create :controller => "boards", :action => "edit", :description => "button_edit", :sort => 2005, :is_public => false, :mail_option => 0, :mail_enabled => 0 |
||||
Permission.create :controller => "boards", :action => "destroy", :description => "button_delete", :sort => 2010, :is_public => false, :mail_option => 0, :mail_enabled => 0 |
||||
end |
||||
|
||||
def self.down |
||||
Permission.find_by_controller_and_action("boards", "new").destroy |
||||
Permission.find_by_controller_and_action("boards", "edit").destroy |
||||
Permission.find_by_controller_and_action("boards", "destroy").destroy |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AllowNullVersionEffectiveDate < ActiveRecord::Migration |
||||
def self.up |
||||
change_column :versions, :effective_date, :date, :default => nil, :null => true |
||||
end |
||||
|
||||
def self.down |
||||
raise IrreversibleMigration |
||||
end |
||||
end |
@ -1,24 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddWikiDestroyPagePermission < ActiveRecord::Migration |
||||
# model removed |
||||
class Permission < ActiveRecord::Base; end |
||||
|
||||
def self.up |
||||
Permission.create :controller => 'wiki', :action => 'destroy', :description => 'button_delete', :sort => 1740, :is_public => false, :mail_option => 0, :mail_enabled => 0 |
||||
end |
||||
|
||||
def self.down |
||||
Permission.find_by_controller_and_action('wiki', 'destroy').destroy |
||||
end |
||||
end |
@ -1,26 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddWikiAttachmentsPermissions < ActiveRecord::Migration |
||||
# model removed |
||||
class Permission < ActiveRecord::Base; end |
||||
|
||||
def self.up |
||||
Permission.create :controller => 'wiki', :action => 'add_attachment', :description => 'label_attachment_new', :sort => 1750, :is_public => false, :mail_option => 0, :mail_enabled => 0 |
||||
Permission.create :controller => 'wiki', :action => 'destroy_attachment', :description => 'label_attachment_delete', :sort => 1755, :is_public => false, :mail_option => 0, :mail_enabled => 0 |
||||
end |
||||
|
||||
def self.down |
||||
Permission.find_by_controller_and_action('wiki', 'add_attachment').destroy |
||||
Permission.find_by_controller_and_action('wiki', 'destroy_attachment').destroy |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddProjectStatus < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :projects, :status, :integer, :default => 1, :null => false |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :projects, :status |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddChangesRevision < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :changes, :revision, :string |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :changes, :revision |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddChangesBranch < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :changes, :branch, :string |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :changes, :branch |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddChangesetsScmid < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :changesets, :scmid, :string |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :changesets, :scmid |
||||
end |
||||
end |
@ -1,23 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddRepositoriesType < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :repositories, :type, :string |
||||
# Set class name for existing SVN repositories |
||||
Repository.update_all "type = 'Subversion'" |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :repositories, :type |
||||
end |
||||
end |
@ -1,24 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddRepositoriesChangesPermission < ActiveRecord::Migration |
||||
# model removed |
||||
class Permission < ActiveRecord::Base; end |
||||
|
||||
def self.up |
||||
Permission.create :controller => 'repositories', :action => 'changes', :description => 'label_change_plural', :sort => 1475, :is_public => true, :mail_option => 0, :mail_enabled => 0 |
||||
end |
||||
|
||||
def self.down |
||||
Permission.find_by_controller_and_action('repositories', 'changes').destroy |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddVersionsWikiPageTitle < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :versions, :wiki_page_title, :string |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :versions, :wiki_page_title |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddIssueCategoriesAssignedToId < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :issue_categories, :assigned_to_id, :integer |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :issue_categories, :assigned_to_id |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddRolesAssignable < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :roles, :assignable, :boolean, :default => true |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :roles, :assignable |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class ChangeChangesetsCommitterLimit < ActiveRecord::Migration |
||||
def self.up |
||||
change_column :changesets, :committer, :string, :limit => nil |
||||
end |
||||
|
||||
def self.down |
||||
change_column :changesets, :committer, :string, :limit => 30 |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddRolesBuiltin < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :roles, :builtin, :integer, :default => 0, :null => false |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :roles, :builtin |
||||
end |
||||
end |
@ -1,29 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class InsertBuiltinRoles < ActiveRecord::Migration |
||||
def self.up |
||||
Role.connection.schema_cache.clear! |
||||
Role.reset_column_information |
||||
nonmember = Role.new(:name => 'Non member', :position => 0) |
||||
nonmember.builtin = Role::BUILTIN_NON_MEMBER |
||||
nonmember.save |
||||
|
||||
anonymous = Role.new(:name => 'Anonymous', :position => 0) |
||||
anonymous.builtin = Role::BUILTIN_ANONYMOUS |
||||
anonymous.save |
||||
end |
||||
|
||||
def self.down |
||||
Role.destroy_all 'builtin <> 0' |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddRolesPermissions < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :roles, :permissions, :text |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :roles, :permissions |
||||
end |
||||
end |
@ -1,22 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class DropPermissions < ActiveRecord::Migration |
||||
def self.up |
||||
drop_table :permissions |
||||
drop_table :permissions_roles |
||||
end |
||||
|
||||
def self.down |
||||
raise IrreversibleMigration |
||||
end |
||||
end |
@ -1,23 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddSettingsUpdatedOn < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :settings, :updated_on, :timestamp |
||||
# set updated_on |
||||
Setting.find(:all).each(&:save) |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :settings, :updated_on |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddCustomValueCustomizedIndex < ActiveRecord::Migration |
||||
def self.up |
||||
add_index :custom_values, [:customized_type, :customized_id], :name => :custom_values_customized |
||||
end |
||||
|
||||
def self.down |
||||
remove_index :custom_values, :name => :custom_values_customized |
||||
end |
||||
end |
@ -1,27 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateWikiRedirects < ActiveRecord::Migration |
||||
def self.up |
||||
create_table :wiki_redirects do |t| |
||||
t.column :wiki_id, :integer, :null => false |
||||
t.column :title, :string |
||||
t.column :redirects_to, :string |
||||
t.column :created_on, :datetime, :null => false |
||||
end |
||||
add_index :wiki_redirects, [:wiki_id, :title], :name => :wiki_redirects_wiki_id_title |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :wiki_redirects |
||||
end |
||||
end |
@ -1,30 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateEnabledModules < ActiveRecord::Migration |
||||
def self.up |
||||
create_table :enabled_modules do |t| |
||||
t.column :project_id, :integer |
||||
t.column :name, :string, :null => false |
||||
end |
||||
add_index :enabled_modules, [:project_id], :name => :enabled_modules_project_id |
||||
|
||||
# Enable all modules for existing projects |
||||
Project.find(:all).each do |project| |
||||
project.enabled_module_names = Redmine::AccessControl.available_project_modules |
||||
end |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :enabled_modules |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddIssuesEstimatedHours < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :issues, :estimated_hours, :float |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :issues, :estimated_hours |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class ChangeAttachmentsContentTypeLimit < ActiveRecord::Migration |
||||
def self.up |
||||
change_column :attachments, :content_type, :string, :limit => nil |
||||
end |
||||
|
||||
def self.down |
||||
change_column :attachments, :content_type, :string, :limit => 60 |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddQueriesColumnNames < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :queries, :column_names, :text |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :queries, :column_names |
||||
end |
||||
end |
@ -1,27 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddEnumerationsPosition < ActiveRecord::Migration |
||||
def self.up |
||||
add_column(:enumerations, :position, :integer, :default => 1) unless Enumeration.column_names.include?('position') |
||||
Enumeration.find(:all).group_by(&:opt).each do |opt, enums| |
||||
enums.each_with_index do |enum, i| |
||||
# do not call model callbacks |
||||
Enumeration.update_all "position = #{i+1}", {:id => enum.id} |
||||
end |
||||
end |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :enumerations, :position |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddEnumerationsIsDefault < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :enumerations, :is_default, :boolean, :default => false, :null => false |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :enumerations, :is_default |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddAuthSourcesTls < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :auth_sources, :tls, :boolean, :default => false, :null => false |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :auth_sources, :tls |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddMembersMailNotification < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :members, :mail_notification, :boolean, :default => false, :null => false |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :members, :mail_notification |
||||
end |
||||
end |
@ -1,26 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AllowNullPosition < ActiveRecord::Migration |
||||
def self.up |
||||
# removes the 'not null' constraint on position fields |
||||
change_column :issue_statuses, :position, :integer, :default => 1, :null => true |
||||
change_column :roles, :position, :integer, :default => 1, :null => true |
||||
change_column :trackers, :position, :integer, :default => 1, :null => true |
||||
change_column :boards, :position, :integer, :default => 1, :null => true |
||||
change_column :enumerations, :position, :integer, :default => 1, :null => true |
||||
end |
||||
|
||||
def self.down |
||||
# nothing to do |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class RemoveIssueStatusesHtmlColor < ActiveRecord::Migration |
||||
def self.up |
||||
remove_column :issue_statuses, :html_color |
||||
end |
||||
|
||||
def self.down |
||||
raise IrreversibleMigration |
||||
end |
||||
end |
@ -1,27 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddCustomFieldsPosition < ActiveRecord::Migration |
||||
def self.up |
||||
add_column(:custom_fields, :position, :integer, :default => 1) |
||||
CustomField.find(:all).group_by(&:type).each do |t, fields| |
||||
fields.each_with_index do |field, i| |
||||
# do not call model callbacks |
||||
CustomField.update_all "position = #{i+1}", {:id => field.id} |
||||
end |
||||
end |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :custom_fields, :position |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddUserPreferencesTimeZone < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :user_preferences, :time_zone, :string |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :user_preferences, :time_zone |
||||
end |
||||
end |
@ -1,22 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddUsersType < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :users, :type, :string |
||||
User.update_all "type = 'User'" |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :users, :type |
||||
end |
||||
end |
@ -1,87 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class CreateProjectsTrackers < ActiveRecord::Migration |
||||
|
||||
class Tracker < ActiveRecord::Base |
||||
before_destroy :check_integrity |
||||
has_many :issues |
||||
has_many :workflows, :dependent => :delete_all do |
||||
def copy(source_tracker) |
||||
Workflow.copy(source_tracker, nil, proxy_association.owner, nil) |
||||
end |
||||
end |
||||
|
||||
has_and_belongs_to_many :projects |
||||
has_and_belongs_to_many :custom_fields, :class_name => 'WorkPackageCustomField', :join_table => "#{table_name_prefix}custom_fields_trackers#{table_name_suffix}", :association_foreign_key => 'custom_field_id' |
||||
acts_as_list |
||||
|
||||
validates_presence_of :name |
||||
validates_uniqueness_of :name |
||||
validates_length_of :name, :maximum => 30 |
||||
|
||||
def to_s; name end |
||||
|
||||
def <=>(tracker) |
||||
name <=> tracker.name |
||||
end |
||||
|
||||
def self.all |
||||
find(:all, :order => 'position') |
||||
end |
||||
|
||||
# Returns an array of IssueStatus that are used |
||||
# in the tracker's workflows |
||||
def issue_statuses |
||||
if @issue_statuses |
||||
return @issue_statuses |
||||
elsif new_record? |
||||
return [] |
||||
end |
||||
|
||||
ids = Workflow. |
||||
connection.select_rows("SELECT DISTINCT old_status_id, new_status_id FROM #{Workflow.table_name} WHERE tracker_id = #{id}"). |
||||
flatten. |
||||
uniq |
||||
|
||||
@issue_statuses = IssueStatus.find_all_by_id(ids).sort |
||||
end |
||||
|
||||
private |
||||
def check_integrity |
||||
raise "Can't delete tracker" if Issue.find(:first, :conditions => ["tracker_id=?", self.id]) |
||||
end |
||||
end |
||||
|
||||
def self.up |
||||
|
||||
Object.const_set("Tracker", AddTrackerPosition::Tracker) |
||||
|
||||
create_table :projects_trackers, :id => false do |t| |
||||
t.column :project_id, :integer, :default => 0, :null => false |
||||
t.column :tracker_id, :integer, :default => 0, :null => false |
||||
end |
||||
add_index :projects_trackers, :project_id, :name => :projects_trackers_project_id |
||||
|
||||
# Associates all trackers to all projects (as it was before) |
||||
tracker_ids = Tracker.find(:all).collect(&:id) |
||||
Project.find(:all).each do |project| |
||||
project.tracker_ids = tracker_ids |
||||
end |
||||
|
||||
Object.send(:remove_const, :Tracker) |
||||
end |
||||
|
||||
def self.down |
||||
drop_table :projects_trackers |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddMessagesLocked < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :messages, :locked, :boolean, :default => false |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :messages, :locked |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddMessagesSticky < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :messages, :sticky, :integer, :default => 0 |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :messages, :sticky |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class ChangeAuthSourcesAccountLimit < ActiveRecord::Migration |
||||
def self.up |
||||
change_column :auth_sources, :account, :string, :limit => nil |
||||
end |
||||
|
||||
def self.down |
||||
change_column :auth_sources, :account, :string, :limit => 60 |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddRoleTrackerOldStatusIndexToWorkflows < ActiveRecord::Migration |
||||
def self.up |
||||
add_index :workflows, [:role_id, :tracker_id, :old_status_id], :name => :wkfs_role_tracker_old_status |
||||
end |
||||
|
||||
def self.down |
||||
remove_index(:workflows, :name => :wkfs_role_tracker_old_status); rescue |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddCustomFieldsSearchable < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :custom_fields, :searchable, :boolean, :default => false |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :custom_fields, :searchable |
||||
end |
||||
end |
@ -1,20 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class ChangeProjectsDescriptionToText < ActiveRecord::Migration |
||||
def self.up |
||||
change_column :projects, :description, :text, :null => true, :default => nil |
||||
end |
||||
|
||||
def self.down |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddCustomFieldsDefaultValue < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :custom_fields, :default_value, :text |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :custom_fields, :default_value |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddAttachmentsDescription < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :attachments, :description, :string |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :attachments, :description |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class ChangeVersionsNameLimit < ActiveRecord::Migration |
||||
def self.up |
||||
change_column :versions, :name, :string, :limit => nil |
||||
end |
||||
|
||||
def self.down |
||||
change_column :versions, :name, :string, :limit => 30 |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class ChangeChangesetsRevisionToString < ActiveRecord::Migration |
||||
def self.up |
||||
change_column :changesets, :revision, :string, :null => false |
||||
end |
||||
|
||||
def self.down |
||||
change_column :changesets, :revision, :integer, :null => false |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class ChangeChangesFromRevisionToString < ActiveRecord::Migration |
||||
def self.up |
||||
change_column :changes, :from_revision, :string |
||||
end |
||||
|
||||
def self.down |
||||
change_column :changes, :from_revision, :integer |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddWikiPagesProtected < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :wiki_pages, :protected, :boolean, :default => false, :null => false |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :wiki_pages, :protected |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class ChangeProjectsHomepageLimit < ActiveRecord::Migration |
||||
def self.up |
||||
change_column :projects, :homepage, :string, :limit => nil, :default => '' |
||||
end |
||||
|
||||
def self.down |
||||
change_column :projects, :homepage, :string, :limit => 60, :default => '' |
||||
end |
||||
end |
@ -1,21 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddWikiPagesParentId < ActiveRecord::Migration |
||||
def self.up |
||||
add_column :wiki_pages, :parent_id, :integer, :default => nil |
||||
end |
||||
|
||||
def self.down |
||||
remove_column :wiki_pages, :parent_id |
||||
end |
||||
end |
@ -1,26 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddCommitAccessPermission < ActiveRecord::Migration |
||||
|
||||
def self.up |
||||
Role.find(:all).select { |r| not r.builtin? }.each do |r| |
||||
r.add_permission!(:commit_access) |
||||
end |
||||
end |
||||
|
||||
def self.down |
||||
Role.find(:all).select { |r| not r.builtin? }.each do |r| |
||||
r.remove_permission!(:commit_access) |
||||
end |
||||
end |
||||
end |
@ -1,25 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class AddViewWikiEditsPermission < ActiveRecord::Migration |
||||
def self.up |
||||
Role.find(:all).each do |r| |
||||
r.add_permission!(:view_wiki_edits) if r.has_permission?(:view_wiki_pages) |
||||
end |
||||
end |
||||
|
||||
def self.down |
||||
Role.find(:all).each do |r| |
||||
r.remove_permission!(:view_wiki_edits) |
||||
end |
||||
end |
||||
end |
@ -1,27 +0,0 @@ |
||||
#-- encoding: UTF-8 |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class SetTopicAuthorsAsWatchers < ActiveRecord::Migration |
||||
def self.up |
||||
# Sets active users who created/replied a topic as watchers of the topic |
||||
# so that the new watch functionality at topic level doesn't affect notifications behaviour |
||||
Message.connection.execute("INSERT INTO #{Watcher.table_name} (watchable_type, watchable_id, user_id)" + |
||||
" SELECT DISTINCT 'Message', COALESCE(m.parent_id, m.id), m.author_id" + |
||||
" FROM #{Message.table_name} m, #{User.table_name} u" + |
||||
" WHERE m.author_id = u.id AND u.status = 1") |
||||
end |
||||
|
||||
def self.down |
||||
# Removes all message watchers |
||||
Watcher.delete_all("watchable_type = 'Message'") |
||||
end |
||||
end |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue