Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
OpenProject database schema
#-- encoding: UTF-8
#-- copyright
# OpenProject is a project management system.
# Copyright (C) 2012-2017 the OpenProject Foundation (OPF)
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License version 3.
#
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
# Copyright (C) 2006-2017 Jean-Philippe Lang
# Copyright (C) 2010-2013 the ChiliProject Team
#
# 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.
#
# See doc/COPYRIGHT.rdoc for more details.
#++
# This migration aggregates the migrations detailed in the @@migrations
# heredoc
class AggregatedMigrations < ActiveRecord::Migration[4.2]
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 { |m|
m.gsub(/_.*\z/, '').to_i
}
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
<
--
-- PostgreSQL database dump
--
-- Dumped from database version 9.6.5
-- Dumped by pg_dump version 9.6.5
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET row_security = off;
--
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner:
--
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
--
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner:
--
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
SET search_path = public, pg_catalog;
SET default_tablespace = '';
SET default_with_oids = false;
--
-- Name: announcements; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE announcements (
id integer NOT NULL,
text text,
show_until date,
active boolean DEFAULT false,
created_at timestamp without time zone,
updated_at timestamp without time zone
);
ALTER TABLE announcements OWNER TO openproject;
--
-- Name: announcements_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE announcements_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE announcements_id_seq OWNER TO openproject;
--
-- Name: announcements_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE announcements_id_seq OWNED BY announcements.id;
--
-- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE ar_internal_metadata (
key character varying NOT NULL,
value character varying,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
ALTER TABLE ar_internal_metadata OWNER TO openproject;
--
-- Name: attachable_journals; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE attachable_journals (
id integer NOT NULL,
journal_id integer NOT NULL,
attachment_id integer NOT NULL,
filename character varying DEFAULT ''::character varying NOT NULL
);
ALTER TABLE attachable_journals OWNER TO openproject;
--
-- Name: attachable_journals_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE attachable_journals_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE attachable_journals_id_seq OWNER TO openproject;
--
-- Name: attachable_journals_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE attachable_journals_id_seq OWNED BY attachable_journals.id;
--
-- Name: attachment_journals; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE attachment_journals (
id integer NOT NULL,
journal_id integer NOT NULL,
container_id integer DEFAULT 0 NOT NULL,
container_type character varying(30) DEFAULT ''::character varying NOT NULL,
filename character varying DEFAULT ''::character varying NOT NULL,
disk_filename character varying DEFAULT ''::character varying NOT NULL,
filesize integer DEFAULT 0 NOT NULL,
content_type character varying DEFAULT ''::character varying,
digest character varying(40) DEFAULT ''::character varying NOT NULL,
downloads integer DEFAULT 0 NOT NULL,
author_id integer DEFAULT 0 NOT NULL,
description text
);
ALTER TABLE attachment_journals OWNER TO openproject;
--
-- Name: attachment_journals_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE attachment_journals_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE attachment_journals_id_seq OWNER TO openproject;
--
-- Name: attachment_journals_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE attachment_journals_id_seq OWNED BY attachment_journals.id;
--
-- Name: attachments; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE attachments (
id integer NOT NULL,
container_id integer DEFAULT 0 NOT NULL,
container_type character varying(30) DEFAULT ''::character varying NOT NULL,
filename character varying DEFAULT ''::character varying NOT NULL,
disk_filename character varying DEFAULT ''::character varying NOT NULL,
filesize integer DEFAULT 0 NOT NULL,
content_type character varying DEFAULT ''::character varying,
digest character varying(40) DEFAULT ''::character varying NOT NULL,
downloads integer DEFAULT 0 NOT NULL,
author_id integer DEFAULT 0 NOT NULL,
created_on timestamp without time zone,
description character varying,
file character varying
);
ALTER TABLE attachments OWNER TO openproject;
--
-- Name: attachments_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE attachments_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE attachments_id_seq OWNER TO openproject;
--
-- Name: attachments_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE attachments_id_seq OWNED BY attachments.id;
--
-- Name: attribute_help_texts; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE attribute_help_texts (
id integer NOT NULL,
help_text text NOT NULL,
type character varying NOT NULL,
attribute_name character varying NOT NULL,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
ALTER TABLE attribute_help_texts OWNER TO openproject;
--
-- Name: attribute_help_texts_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE attribute_help_texts_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE attribute_help_texts_id_seq OWNER TO openproject;
--
-- Name: attribute_help_texts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE attribute_help_texts_id_seq OWNED BY attribute_help_texts.id;
--
-- Name: auth_sources; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE auth_sources (
id integer NOT NULL,
type character varying(30) DEFAULT ''::character varying NOT NULL,
name character varying(60) DEFAULT ''::character varying NOT NULL,
host character varying(60),
port integer,
account character varying,
account_password character varying DEFAULT ''::character varying,
base_dn character varying,
attr_login character varying(30),
attr_firstname character varying(30),
attr_lastname character varying(30),
attr_mail character varying(30),
onthefly_register boolean DEFAULT false NOT NULL,
tls boolean DEFAULT false NOT NULL,
attr_admin character varying
);
ALTER TABLE auth_sources OWNER TO openproject;
--
-- Name: auth_sources_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE auth_sources_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE auth_sources_id_seq OWNER TO openproject;
--
-- Name: auth_sources_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE auth_sources_id_seq OWNED BY auth_sources.id;
--
-- Name: available_project_statuses; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE available_project_statuses (
id integer NOT NULL,
project_type_id integer,
reported_project_status_id integer,
created_at timestamp without time zone,
updated_at timestamp without time zone
);
ALTER TABLE available_project_statuses OWNER TO openproject;
--
-- Name: available_project_statuses_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE available_project_statuses_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE available_project_statuses_id_seq OWNER TO openproject;
--
-- Name: available_project_statuses_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE available_project_statuses_id_seq OWNED BY available_project_statuses.id;
--
-- Name: boards; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE boards (
id integer NOT NULL,
project_id integer NOT NULL,
name character varying DEFAULT ''::character varying NOT NULL,
description character varying,
"position" integer DEFAULT 1,
topics_count integer DEFAULT 0 NOT NULL,
messages_count integer DEFAULT 0 NOT NULL,
last_message_id integer
);
ALTER TABLE boards OWNER TO openproject;
--
-- Name: boards_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE boards_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE boards_id_seq OWNER TO openproject;
--
-- Name: boards_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE boards_id_seq OWNED BY boards.id;
--
-- Name: categories; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE categories (
id integer NOT NULL,
project_id integer DEFAULT 0 NOT NULL,
name character varying(256) DEFAULT ''::character varying NOT NULL,
assigned_to_id integer
);
ALTER TABLE categories OWNER TO openproject;
--
-- Name: categories_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE categories_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE categories_id_seq OWNER TO openproject;
--
-- Name: categories_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE categories_id_seq OWNED BY categories.id;
--
-- Name: changes; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE changes (
id integer NOT NULL,
changeset_id integer NOT NULL,
action character varying(1) DEFAULT ''::character varying NOT NULL,
path text NOT NULL,
from_path text,
from_revision character varying,
revision character varying,
branch character varying
);
ALTER TABLE changes OWNER TO openproject;
--
-- Name: changes_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE changes_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE changes_id_seq OWNER TO openproject;
--
-- Name: changes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE changes_id_seq OWNED BY changes.id;
--
-- Name: changeset_journals; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE changeset_journals (
id integer NOT NULL,
journal_id integer NOT NULL,
repository_id integer NOT NULL,
revision character varying NOT NULL,
committer character varying,
committed_on timestamp without time zone NOT NULL,
comments text,
commit_date date,
scmid character varying,
user_id integer
);
ALTER TABLE changeset_journals OWNER TO openproject;
--
-- Name: changeset_journals_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE changeset_journals_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE changeset_journals_id_seq OWNER TO openproject;
--
-- Name: changeset_journals_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE changeset_journals_id_seq OWNED BY changeset_journals.id;
--
-- Name: changesets; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE changesets (
id integer NOT NULL,
repository_id integer NOT NULL,
revision character varying NOT NULL,
committer character varying,
committed_on timestamp without time zone NOT NULL,
comments text,
commit_date date,
scmid character varying,
user_id integer
);
ALTER TABLE changesets OWNER TO openproject;
--
-- Name: changesets_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE changesets_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE changesets_id_seq OWNER TO openproject;
--
-- Name: changesets_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE changesets_id_seq OWNED BY changesets.id;
--
-- Name: changesets_work_packages; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE changesets_work_packages (
changeset_id integer NOT NULL,
work_package_id integer NOT NULL
);
ALTER TABLE changesets_work_packages OWNER TO openproject;
--
-- Name: comments; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE comments (
id integer NOT NULL,
commented_type character varying(30) DEFAULT ''::character varying NOT NULL,
commented_id integer DEFAULT 0 NOT NULL,
author_id integer DEFAULT 0 NOT NULL,
comments text,
created_on timestamp without time zone NOT NULL,
updated_on timestamp without time zone NOT NULL
);
ALTER TABLE comments OWNER TO openproject;
--
-- Name: comments_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE comments_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE comments_id_seq OWNER TO openproject;
--
-- Name: comments_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE comments_id_seq OWNED BY comments.id;
--
-- Name: custom_fields; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE custom_fields (
id integer NOT NULL,
type character varying(30) DEFAULT ''::character varying NOT NULL,
field_format character varying(30) DEFAULT ''::character varying NOT NULL,
regexp character varying DEFAULT ''::character varying,
min_length integer DEFAULT 0 NOT NULL,
max_length integer DEFAULT 0 NOT NULL,
is_required boolean DEFAULT false NOT NULL,
is_for_all boolean DEFAULT false NOT NULL,
is_filter boolean DEFAULT false NOT NULL,
"position" integer DEFAULT 1,
searchable boolean DEFAULT false,
editable boolean DEFAULT true,
visible boolean DEFAULT true NOT NULL,
multi_value boolean DEFAULT false,
default_value text,
name character varying,
created_at timestamp without time zone,
updated_at timestamp without time zone
);
ALTER TABLE custom_fields OWNER TO openproject;
--
-- Name: custom_fields_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE custom_fields_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE custom_fields_id_seq OWNER TO openproject;
--
-- Name: custom_fields_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE custom_fields_id_seq OWNED BY custom_fields.id;
--
-- Name: custom_fields_projects; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE custom_fields_projects (
custom_field_id integer DEFAULT 0 NOT NULL,
project_id integer DEFAULT 0 NOT NULL
);
ALTER TABLE custom_fields_projects OWNER TO openproject;
--
-- Name: custom_fields_types; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE custom_fields_types (
custom_field_id integer DEFAULT 0 NOT NULL,
type_id integer DEFAULT 0 NOT NULL
);
ALTER TABLE custom_fields_types OWNER TO openproject;
--
-- Name: custom_options; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE custom_options (
id integer NOT NULL,
custom_field_id integer,
"position" integer,
default_value boolean,
value text,
created_at timestamp without time zone,
updated_at timestamp without time zone
);
ALTER TABLE custom_options OWNER TO openproject;
--
-- Name: custom_options_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE custom_options_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE custom_options_id_seq OWNER TO openproject;
--
-- Name: custom_options_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE custom_options_id_seq OWNED BY custom_options.id;
--
-- Name: custom_styles; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE custom_styles (
id integer NOT NULL,
logo character varying,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL,
favicon character varying,
touch_icon character varying
);
ALTER TABLE custom_styles OWNER TO openproject;
--
-- Name: custom_styles_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE custom_styles_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE custom_styles_id_seq OWNER TO openproject;
--
-- Name: custom_styles_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE custom_styles_id_seq OWNED BY custom_styles.id;
--
-- Name: custom_values; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE custom_values (
id integer NOT NULL,
customized_type character varying(30) DEFAULT ''::character varying NOT NULL,
customized_id integer DEFAULT 0 NOT NULL,
custom_field_id integer DEFAULT 0 NOT NULL,
value text
);
ALTER TABLE custom_values OWNER TO openproject;
--
-- Name: custom_values_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE custom_values_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE custom_values_id_seq OWNER TO openproject;
--
-- Name: custom_values_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE custom_values_id_seq OWNED BY custom_values.id;
--
-- Name: customizable_journals; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE customizable_journals (
id integer NOT NULL,
journal_id integer NOT NULL,
custom_field_id integer NOT NULL,
value text
);
ALTER TABLE customizable_journals OWNER TO openproject;
--
-- Name: customizable_journals_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE customizable_journals_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE customizable_journals_id_seq OWNER TO openproject;
--
-- Name: customizable_journals_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE customizable_journals_id_seq OWNED BY customizable_journals.id;
--
-- Name: delayed_jobs; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE delayed_jobs (
id integer NOT NULL,
priority integer DEFAULT 0,
attempts integer DEFAULT 0,
handler text,
last_error text,
run_at timestamp without time zone,
locked_at timestamp without time zone,
failed_at timestamp without time zone,
locked_by character varying,
created_at timestamp without time zone,
updated_at timestamp without time zone,
queue character varying
);
ALTER TABLE delayed_jobs OWNER TO openproject;
--
-- Name: delayed_jobs_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE delayed_jobs_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE delayed_jobs_id_seq OWNER TO openproject;
--
-- Name: delayed_jobs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE delayed_jobs_id_seq OWNED BY delayed_jobs.id;
--
-- Name: design_colors; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE design_colors (
id integer NOT NULL,
variable character varying,
hexcode character varying,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
ALTER TABLE design_colors OWNER TO openproject;
--
-- Name: design_colors_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE design_colors_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE design_colors_id_seq OWNER TO openproject;
--
-- Name: design_colors_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE design_colors_id_seq OWNED BY design_colors.id;
--
-- Name: enabled_modules; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE enabled_modules (
id integer NOT NULL,
project_id integer,
name character varying NOT NULL
);
ALTER TABLE enabled_modules OWNER TO openproject;
--
-- Name: enabled_modules_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE enabled_modules_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE enabled_modules_id_seq OWNER TO openproject;
--
-- Name: enabled_modules_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE enabled_modules_id_seq OWNED BY enabled_modules.id;
--
-- Name: enterprise_tokens; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE enterprise_tokens (
id integer NOT NULL,
encoded_token text,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
ALTER TABLE enterprise_tokens OWNER TO openproject;
--
-- Name: enterprise_tokens_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE enterprise_tokens_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE enterprise_tokens_id_seq OWNER TO openproject;
--
-- Name: enterprise_tokens_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE enterprise_tokens_id_seq OWNED BY enterprise_tokens.id;
--
-- Name: enumerations; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE enumerations (
id integer NOT NULL,
name character varying(30) DEFAULT ''::character varying NOT NULL,
"position" integer DEFAULT 1,
is_default boolean DEFAULT false NOT NULL,
type character varying,
active boolean DEFAULT true NOT NULL,
project_id integer,
parent_id integer
);
ALTER TABLE enumerations OWNER TO openproject;
--
-- Name: enumerations_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE enumerations_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE enumerations_id_seq OWNER TO openproject;
--
-- Name: enumerations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE enumerations_id_seq OWNED BY enumerations.id;
--
-- Name: group_users; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE group_users (
group_id integer NOT NULL,
user_id integer NOT NULL
);
ALTER TABLE group_users OWNER TO openproject;
--
-- Name: journals; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE journals (
id integer NOT NULL,
journable_type character varying,
journable_id integer,
user_id integer DEFAULT 0 NOT NULL,
notes text,
created_at timestamp without time zone NOT NULL,
version integer DEFAULT 0 NOT NULL,
activity_type character varying
);
ALTER TABLE journals OWNER TO openproject;
--
-- Name: journals_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE journals_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE journals_id_seq OWNER TO openproject;
--
-- Name: journals_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE journals_id_seq OWNED BY journals.id;
--
-- Name: member_roles; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE member_roles (
id integer NOT NULL,
member_id integer NOT NULL,
role_id integer NOT NULL,
inherited_from integer
);
ALTER TABLE member_roles OWNER TO openproject;
--
-- Name: member_roles_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE member_roles_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE member_roles_id_seq OWNER TO openproject;
--
-- Name: member_roles_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE member_roles_id_seq OWNED BY member_roles.id;
--
-- Name: members; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE members (
id integer NOT NULL,
user_id integer DEFAULT 0 NOT NULL,
project_id integer DEFAULT 0 NOT NULL,
created_on timestamp without time zone,
mail_notification boolean DEFAULT false NOT NULL
);
ALTER TABLE members OWNER TO openproject;
--
-- Name: members_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE members_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE members_id_seq OWNER TO openproject;
--
-- Name: members_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE members_id_seq OWNED BY members.id;
--
-- Name: menu_items; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE menu_items (
id integer NOT NULL,
name character varying,
title character varying,
parent_id integer,
options text,
navigatable_id integer,
type character varying
);
ALTER TABLE menu_items OWNER TO openproject;
--
-- Name: menu_items_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE menu_items_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE menu_items_id_seq OWNER TO openproject;
--
-- Name: menu_items_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE menu_items_id_seq OWNED BY menu_items.id;
--
-- Name: message_journals; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE message_journals (
id integer NOT NULL,
journal_id integer NOT NULL,
board_id integer NOT NULL,
parent_id integer,
subject character varying DEFAULT ''::character varying NOT NULL,
content text,
author_id integer,
replies_count integer DEFAULT 0 NOT NULL,
last_reply_id integer,
locked boolean DEFAULT false,
sticky integer DEFAULT 0
);
ALTER TABLE message_journals OWNER TO openproject;
--
-- Name: message_journals_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE message_journals_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE message_journals_id_seq OWNER TO openproject;
--
-- Name: message_journals_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE message_journals_id_seq OWNED BY message_journals.id;
--
-- Name: messages; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE messages (
id integer NOT NULL,
board_id integer NOT NULL,
parent_id integer,
subject character varying DEFAULT ''::character varying NOT NULL,
content text,
author_id integer,
replies_count integer DEFAULT 0 NOT NULL,
last_reply_id integer,
created_on timestamp without time zone NOT NULL,
updated_on timestamp without time zone NOT NULL,
locked boolean DEFAULT false,
sticky integer DEFAULT 0,
sticked_on timestamp without time zone
);
ALTER TABLE messages OWNER TO openproject;
--
-- Name: messages_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE messages_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE messages_id_seq OWNER TO openproject;
--
-- Name: messages_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE messages_id_seq OWNED BY messages.id;
--
-- Name: news; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE news (
id integer NOT NULL,
project_id integer,
title character varying(60) DEFAULT ''::character varying NOT NULL,
summary character varying DEFAULT ''::character varying,
description text,
author_id integer DEFAULT 0 NOT NULL,
created_on timestamp without time zone,
comments_count integer DEFAULT 0 NOT NULL
);
ALTER TABLE news OWNER TO openproject;
--
-- Name: news_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE news_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE news_id_seq OWNER TO openproject;
--
-- Name: news_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE news_id_seq OWNED BY news.id;
--
-- Name: news_journals; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE news_journals (
id integer NOT NULL,
journal_id integer NOT NULL,
project_id integer,
title character varying(60) DEFAULT ''::character varying NOT NULL,
summary character varying DEFAULT ''::character varying,
description text,
author_id integer DEFAULT 0 NOT NULL,
comments_count integer DEFAULT 0 NOT NULL
);
ALTER TABLE news_journals OWNER TO openproject;
--
-- Name: news_journals_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE news_journals_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE news_journals_id_seq OWNER TO openproject;
--
-- Name: news_journals_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE news_journals_id_seq OWNED BY news_journals.id;
--
-- Name: planning_element_type_colors; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE planning_element_type_colors (
id integer NOT NULL,
name character varying NOT NULL,
hexcode character varying NOT NULL,
"position" integer DEFAULT 1,
created_at timestamp without time zone,
updated_at timestamp without time zone
);
ALTER TABLE planning_element_type_colors OWNER TO openproject;
--
-- Name: planning_element_type_colors_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE planning_element_type_colors_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE planning_element_type_colors_id_seq OWNER TO openproject;
--
-- Name: planning_element_type_colors_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE planning_element_type_colors_id_seq OWNED BY planning_element_type_colors.id;
--
-- Name: project_associations; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE project_associations (
id integer NOT NULL,
project_a_id integer,
project_b_id integer,
description text,
created_at timestamp without time zone,
updated_at timestamp without time zone
);
ALTER TABLE project_associations OWNER TO openproject;
--
-- Name: project_associations_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE project_associations_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE project_associations_id_seq OWNER TO openproject;
--
-- Name: project_associations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE project_associations_id_seq OWNED BY project_associations.id;
--
-- Name: project_types; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE project_types (
id integer NOT NULL,
name character varying DEFAULT ''::character varying NOT NULL,
allows_association boolean DEFAULT true NOT NULL,
"position" integer DEFAULT 1,
created_at timestamp without time zone,
updated_at timestamp without time zone
);
ALTER TABLE project_types OWNER TO openproject;
--
-- Name: project_types_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE project_types_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE project_types_id_seq OWNER TO openproject;
--
-- Name: project_types_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE project_types_id_seq OWNED BY project_types.id;
--
-- Name: projects; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE projects (
id integer NOT NULL,
name character varying DEFAULT ''::character varying NOT NULL,
description text,
is_public boolean DEFAULT true NOT NULL,
parent_id integer,
created_on timestamp without time zone,
updated_on timestamp without time zone,
identifier character varying,
status integer DEFAULT 1 NOT NULL,
lft integer,
rgt integer,
project_type_id integer,
responsible_id integer,
work_packages_responsible_id integer
);
ALTER TABLE projects OWNER TO openproject;
--
-- Name: projects_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE projects_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE projects_id_seq OWNER TO openproject;
--
-- Name: projects_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE projects_id_seq OWNED BY projects.id;
--
-- Name: projects_types; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE projects_types (
project_id integer DEFAULT 0 NOT NULL,
type_id integer DEFAULT 0 NOT NULL
);
ALTER TABLE projects_types OWNER TO openproject;
--
-- Name: queries; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE queries (
id integer NOT NULL,
project_id integer,
name character varying DEFAULT ''::character varying NOT NULL,
filters text,
user_id integer DEFAULT 0 NOT NULL,
is_public boolean DEFAULT false NOT NULL,
column_names text,
sort_criteria text,
group_by character varying,
display_sums boolean DEFAULT false NOT NULL,
timeline_visible boolean DEFAULT false,
show_hierarchies boolean DEFAULT false,
timeline_zoom_level integer DEFAULT 0,
timeline_labels text
);
ALTER TABLE queries OWNER TO openproject;
--
-- Name: queries_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE queries_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE queries_id_seq OWNER TO openproject;
--
-- Name: queries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE queries_id_seq OWNED BY queries.id;
--
-- Name: relations; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE relations (
id integer NOT NULL,
from_id integer NOT NULL,
to_id integer NOT NULL,
relation_type character varying DEFAULT ''::character varying NOT NULL,
delay integer,
description text
);
ALTER TABLE relations OWNER TO openproject;
--
-- Name: relations_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE relations_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE relations_id_seq OWNER TO openproject;
--
-- Name: relations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE relations_id_seq OWNED BY relations.id;
--
-- Name: reportings; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE reportings (
id integer NOT NULL,
reported_project_status_comment text,
project_id integer,
reporting_to_project_id integer,
reported_project_status_id integer,
created_at timestamp without time zone,
updated_at timestamp without time zone
);
ALTER TABLE reportings OWNER TO openproject;
--
-- Name: reportings_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE reportings_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE reportings_id_seq OWNER TO openproject;
--
-- Name: reportings_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE reportings_id_seq OWNED BY reportings.id;
--
-- Name: repositories; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE repositories (
id integer NOT NULL,
project_id integer DEFAULT 0 NOT NULL,
url character varying DEFAULT ''::character varying NOT NULL,
login character varying(60) DEFAULT ''::character varying,
password character varying DEFAULT ''::character varying,
root_url character varying DEFAULT ''::character varying,
type character varying,
path_encoding character varying(64),
log_encoding character varying(64),
scm_type character varying NOT NULL,
required_storage_bytes bigint DEFAULT 0 NOT NULL,
storage_updated_at timestamp without time zone
);
ALTER TABLE repositories OWNER TO openproject;
--
-- Name: repositories_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE repositories_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE repositories_id_seq OWNER TO openproject;
--
-- Name: repositories_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE repositories_id_seq OWNED BY repositories.id;
--
-- Name: role_permissions; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE role_permissions (
id integer NOT NULL,
permission character varying,
role_id integer,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
ALTER TABLE role_permissions OWNER TO openproject;
--
-- Name: role_permissions_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE role_permissions_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE role_permissions_id_seq OWNER TO openproject;
--
-- Name: role_permissions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE role_permissions_id_seq OWNED BY role_permissions.id;
--
-- Name: roles; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE roles (
id integer NOT NULL,
name character varying(30) DEFAULT ''::character varying NOT NULL,
"position" integer DEFAULT 1,
assignable boolean DEFAULT true,
builtin integer DEFAULT 0 NOT NULL
);
ALTER TABLE roles OWNER TO openproject;
--
-- Name: roles_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE roles_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE roles_id_seq OWNER TO openproject;
--
-- Name: roles_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE roles_id_seq OWNED BY roles.id;
--
-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE schema_migrations (
version character varying NOT NULL
);
ALTER TABLE schema_migrations OWNER TO openproject;
--
-- Name: sessions; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE sessions (
id integer NOT NULL,
session_id character varying NOT NULL,
data text,
created_at timestamp without time zone,
updated_at timestamp without time zone,
user_id integer
);
ALTER TABLE sessions OWNER TO openproject;
--
-- Name: sessions_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE sessions_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE sessions_id_seq OWNER TO openproject;
--
-- Name: sessions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE sessions_id_seq OWNED BY sessions.id;
--
-- Name: settings; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE settings (
id integer NOT NULL,
name character varying DEFAULT ''::character varying NOT NULL,
value text,
updated_on timestamp without time zone
);
ALTER TABLE settings OWNER TO openproject;
--
-- Name: settings_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE settings_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE settings_id_seq OWNER TO openproject;
--
-- Name: settings_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE settings_id_seq OWNED BY settings.id;
--
-- Name: statuses; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE statuses (
id integer NOT NULL,
name character varying(30) DEFAULT ''::character varying NOT NULL,
is_closed boolean DEFAULT false NOT NULL,
is_default boolean DEFAULT false NOT NULL,
"position" integer DEFAULT 1,
default_done_ratio integer
);
ALTER TABLE statuses OWNER TO openproject;
--
-- Name: statuses_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE statuses_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE statuses_id_seq OWNER TO openproject;
--
-- Name: statuses_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE statuses_id_seq OWNED BY statuses.id;
--
-- Name: time_entries; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE time_entries (
id integer NOT NULL,
project_id integer NOT NULL,
user_id integer NOT NULL,
work_package_id integer,
hours double precision NOT NULL,
comments character varying,
activity_id integer NOT NULL,
spent_on date NOT NULL,
tyear integer NOT NULL,
tmonth integer NOT NULL,
tweek integer NOT NULL,
created_on timestamp without time zone NOT NULL,
updated_on timestamp without time zone NOT NULL
);
ALTER TABLE time_entries OWNER TO openproject;
--
-- Name: time_entries_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE time_entries_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE time_entries_id_seq OWNER TO openproject;
--
-- Name: time_entries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE time_entries_id_seq OWNED BY time_entries.id;
--
-- Name: time_entry_journals; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE time_entry_journals (
id integer NOT NULL,
journal_id integer NOT NULL,
project_id integer NOT NULL,
user_id integer NOT NULL,
work_package_id integer,
hours double precision NOT NULL,
comments character varying,
activity_id integer NOT NULL,
spent_on date NOT NULL,
tyear integer NOT NULL,
tmonth integer NOT NULL,
tweek integer NOT NULL
);
ALTER TABLE time_entry_journals OWNER TO openproject;
--
-- Name: time_entry_journals_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE time_entry_journals_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE time_entry_journals_id_seq OWNER TO openproject;
--
-- Name: time_entry_journals_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE time_entry_journals_id_seq OWNED BY time_entry_journals.id;
--
-- Name: timelines; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE timelines (
id integer NOT NULL,
name character varying NOT NULL,
project_id integer,
created_at timestamp without time zone,
updated_at timestamp without time zone,
options text
);
ALTER TABLE timelines OWNER TO openproject;
--
-- Name: timelines_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE timelines_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE timelines_id_seq OWNER TO openproject;
--
-- Name: timelines_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE timelines_id_seq OWNED BY timelines.id;
--
-- Name: tokens; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE tokens (
id integer NOT NULL,
user_id integer DEFAULT 0 NOT NULL,
action character varying(30) DEFAULT ''::character varying NOT NULL,
value character varying(40) DEFAULT ''::character varying NOT NULL,
created_on timestamp without time zone NOT NULL
);
ALTER TABLE tokens OWNER TO openproject;
--
-- Name: tokens_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE tokens_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE tokens_id_seq OWNER TO openproject;
--
-- Name: tokens_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE tokens_id_seq OWNED BY tokens.id;
--
-- Name: types; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE types (
id integer NOT NULL,
name character varying DEFAULT ''::character varying NOT NULL,
"position" integer DEFAULT 1,
is_in_roadmap boolean DEFAULT true NOT NULL,
in_aggregation boolean DEFAULT true NOT NULL,
is_milestone boolean DEFAULT false NOT NULL,
is_default boolean DEFAULT false NOT NULL,
color_id integer,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL,
is_standard boolean DEFAULT false NOT NULL,
attribute_groups text
);
ALTER TABLE types OWNER TO openproject;
--
-- Name: types_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE types_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE types_id_seq OWNER TO openproject;
--
-- Name: types_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE types_id_seq OWNED BY types.id;
--
-- Name: user_passwords; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE user_passwords (
id integer NOT NULL,
user_id integer NOT NULL,
hashed_password character varying(128) NOT NULL,
salt character varying(64),
created_at timestamp without time zone,
updated_at timestamp without time zone,
type character varying NOT NULL
);
ALTER TABLE user_passwords OWNER TO openproject;
--
-- Name: user_passwords_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE user_passwords_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE user_passwords_id_seq OWNER TO openproject;
--
-- Name: user_passwords_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE user_passwords_id_seq OWNED BY user_passwords.id;
--
-- Name: user_preferences; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE user_preferences (
id integer NOT NULL,
user_id integer DEFAULT 0 NOT NULL,
others text,
hide_mail boolean DEFAULT true,
time_zone character varying,
impaired boolean DEFAULT false
);
ALTER TABLE user_preferences OWNER TO openproject;
--
-- Name: user_preferences_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE user_preferences_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE user_preferences_id_seq OWNER TO openproject;
--
-- Name: user_preferences_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE user_preferences_id_seq OWNED BY user_preferences.id;
--
-- Name: users; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE users (
id integer NOT NULL,
login character varying(256) DEFAULT ''::character varying NOT NULL,
firstname character varying(30) DEFAULT ''::character varying NOT NULL,
lastname character varying(30) DEFAULT ''::character varying NOT NULL,
mail character varying(60) DEFAULT ''::character varying NOT NULL,
admin boolean DEFAULT false NOT NULL,
status integer DEFAULT 1 NOT NULL,
last_login_on timestamp without time zone,
language character varying(5) DEFAULT ''::character varying,
auth_source_id integer,
created_on timestamp without time zone,
updated_on timestamp without time zone,
type character varying,
identity_url character varying,
mail_notification character varying DEFAULT ''::character varying NOT NULL,
first_login boolean DEFAULT true NOT NULL,
force_password_change boolean DEFAULT false,
failed_login_count integer DEFAULT 0,
last_failed_login_on timestamp without time zone
);
ALTER TABLE users OWNER TO openproject;
--
-- Name: users_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE users_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE users_id_seq OWNER TO openproject;
--
-- Name: users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE users_id_seq OWNED BY users.id;
--
-- Name: versions; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE versions (
id integer NOT NULL,
project_id integer DEFAULT 0 NOT NULL,
name character varying DEFAULT ''::character varying NOT NULL,
description character varying DEFAULT ''::character varying,
effective_date date,
created_on timestamp without time zone,
updated_on timestamp without time zone,
wiki_page_title character varying,
status character varying DEFAULT 'open'::character varying,
sharing character varying DEFAULT 'none'::character varying NOT NULL,
start_date date
);
ALTER TABLE versions OWNER TO openproject;
--
-- Name: versions_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE versions_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE versions_id_seq OWNER TO openproject;
--
-- Name: versions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE versions_id_seq OWNED BY versions.id;
--
-- Name: watchers; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE watchers (
id integer NOT NULL,
watchable_type character varying DEFAULT ''::character varying NOT NULL,
watchable_id integer DEFAULT 0 NOT NULL,
user_id integer
);
ALTER TABLE watchers OWNER TO openproject;
--
-- Name: watchers_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE watchers_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE watchers_id_seq OWNER TO openproject;
--
-- Name: watchers_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE watchers_id_seq OWNED BY watchers.id;
--
-- Name: wiki_content_journals; Type: TABLE; Schema: public; Owner: openproject
--
CREATE TABLE wiki_content_journals (
id integer NOT NULL,
journal_id integer NOT NULL,
page_id integer NOT NULL,
author_id integer,
text text
);
ALTER TABLE wiki_content_journals OWNER TO openproject;
--
-- Name: wiki_content_journals_id_seq; Type: SEQUENCE; Schema: public; Owner: openproject
--
CREATE SEQUENCE wiki_content_journals_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE wiki_content_journals_id_seq OWNER TO openproject;
--
-- Name: wiki_content_journals_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: openproject
--
ALTER SEQUENCE wiki_content_journals_id_seq OWNED BY wiki_content_journals.id;