Merge remote-tracking branch 'upstream/pull/1576'

This commit is contained in:
Tom Hughes 2018-06-16 11:45:23 +01:00
commit 7441f15b4f
40 changed files with 1887 additions and 5 deletions

View file

@ -0,0 +1,64 @@
require "migrate"
class CreateIssuesAndReports < ActiveRecord::Migration[5.0]
def up
create_enumeration :issue_status_enum, %w[open ignored resolved]
create_table :issues do |t|
t.string :reportable_type, :null => false
t.integer :reportable_id, :null => false
t.integer :reported_user_id
t.column :status, :issue_status_enum, :null => false, :default => "open"
t.column :assigned_role, :user_role_enum, :null => false
t.datetime :resolved_at
t.integer :resolved_by
t.integer :updated_by
t.integer :reports_count, :default => 0
t.timestamps :null => false
end
add_foreign_key :issues, :users, :column => :reported_user_id, :name => "issues_reported_user_id_fkey"
add_foreign_key :issues, :users, :column => :resolved_by, :name => "issues_resolved_by_fkey"
add_foreign_key :issues, :users, :column => :updated_by, :name => "issues_updated_by_fkey"
add_index :issues, [:reportable_type, :reportable_id]
add_index :issues, [:reported_user_id]
add_index :issues, [:status]
add_index :issues, [:assigned_role]
add_index :issues, [:updated_by]
create_table :reports do |t|
t.integer :issue_id, :null => false
t.integer :user_id, :null => false
t.text :details, :null => false
t.string :category, :null => false
t.timestamps :null => false
end
add_foreign_key :reports, :issues, :name => "reports_issue_id_fkey"
add_foreign_key :reports, :users, :column => :user_id, :name => "reports_user_id_fkey"
add_index :reports, :issue_id
add_index :reports, :user_id
create_table :issue_comments do |t|
t.integer :issue_id, :null => false
t.integer :user_id, :null => false
t.text :body, :null => false
t.timestamps :null => false
end
add_foreign_key :issue_comments, :issues, :name => "issue_comments_issue_id_fkey"
add_foreign_key :issue_comments, :users, :column => :user_id, :name => "issue_comments_user_id_fkey"
add_index :issue_comments, :issue_id
add_index :issue_comments, :user_id
end
def down
drop_table :issue_comments
drop_table :reports
drop_table :issues
drop_enumeration :issue_status_enum
end
end

View file

@ -60,6 +60,17 @@ CREATE TYPE gpx_visibility_enum AS ENUM (
);
--
-- Name: issue_status_enum; Type: TYPE; Schema: public; Owner: -
--
CREATE TYPE issue_status_enum AS ENUM (
'open',
'ignored',
'resolved'
);
--
-- Name: note_event_enum; Type: TYPE; Schema: public; Owner: -
--
@ -679,6 +690,78 @@ CREATE SEQUENCE gpx_files_id_seq
ALTER SEQUENCE gpx_files_id_seq OWNED BY gpx_files.id;
--
-- Name: issue_comments; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE issue_comments (
id integer NOT NULL,
issue_id integer NOT NULL,
user_id integer NOT NULL,
body text NOT NULL,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
--
-- Name: issue_comments_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE issue_comments_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: issue_comments_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE issue_comments_id_seq OWNED BY issue_comments.id;
--
-- Name: issues; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE issues (
id integer NOT NULL,
reportable_type character varying NOT NULL,
reportable_id integer NOT NULL,
reported_user_id integer,
status issue_status_enum DEFAULT 'open'::public.issue_status_enum NOT NULL,
assigned_role user_role_enum NOT NULL,
resolved_at timestamp without time zone,
resolved_by integer,
updated_by integer,
reports_count integer DEFAULT 0,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
--
-- Name: issues_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE issues_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: issues_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE issues_id_seq OWNED BY issues.id;
--
-- Name: languages; Type: TABLE; Schema: public; Owner: -
--
@ -980,6 +1063,40 @@ CREATE TABLE relations (
);
--
-- Name: reports; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE reports (
id integer NOT NULL,
issue_id integer NOT NULL,
user_id integer NOT NULL,
details text NOT NULL,
category character varying NOT NULL,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
--
-- Name: reports_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE reports_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: reports_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE reports_id_seq OWNED BY reports.id;
--
-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -
--
@ -1283,6 +1400,20 @@ ALTER TABLE ONLY gpx_file_tags ALTER COLUMN id SET DEFAULT nextval('gpx_file_tag
ALTER TABLE ONLY gpx_files ALTER COLUMN id SET DEFAULT nextval('gpx_files_id_seq'::regclass);
--
-- Name: issue_comments id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY issue_comments ALTER COLUMN id SET DEFAULT nextval('issue_comments_id_seq'::regclass);
--
-- Name: issues id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY issues ALTER COLUMN id SET DEFAULT nextval('issues_id_seq'::regclass);
--
-- Name: messages id; Type: DEFAULT; Schema: public; Owner: -
--
@ -1325,6 +1456,13 @@ ALTER TABLE ONLY oauth_tokens ALTER COLUMN id SET DEFAULT nextval('oauth_tokens_
ALTER TABLE ONLY redactions ALTER COLUMN id SET DEFAULT nextval('redactions_id_seq'::regclass);
--
-- Name: reports id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY reports ALTER COLUMN id SET DEFAULT nextval('reports_id_seq'::regclass);
--
-- Name: user_blocks id; Type: DEFAULT; Schema: public; Owner: -
--
@ -1505,6 +1643,22 @@ ALTER TABLE ONLY gpx_files
ADD CONSTRAINT gpx_files_pkey PRIMARY KEY (id);
--
-- Name: issue_comments issue_comments_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY issue_comments
ADD CONSTRAINT issue_comments_pkey PRIMARY KEY (id);
--
-- Name: issues issues_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY issues
ADD CONSTRAINT issues_pkey PRIMARY KEY (id);
--
-- Name: languages languages_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
@ -1601,6 +1755,14 @@ ALTER TABLE ONLY relations
ADD CONSTRAINT relations_pkey PRIMARY KEY (relation_id, version);
--
-- Name: reports reports_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY reports
ADD CONSTRAINT reports_pkey PRIMARY KEY (id);
--
-- Name: user_blocks user_blocks_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
@ -1875,6 +2037,55 @@ CREATE INDEX index_client_applications_on_user_id ON client_applications USING b
CREATE INDEX index_diary_entry_subscriptions_on_diary_entry_id ON diary_entry_subscriptions USING btree (diary_entry_id);
--
-- Name: index_issue_comments_on_issue_id; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX index_issue_comments_on_issue_id ON issue_comments USING btree (issue_id);
--
-- Name: index_issue_comments_on_user_id; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX index_issue_comments_on_user_id ON issue_comments USING btree (user_id);
--
-- Name: index_issues_on_assigned_role; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX index_issues_on_assigned_role ON issues USING btree (assigned_role);
--
-- Name: index_issues_on_reportable_type_and_reportable_id; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX index_issues_on_reportable_type_and_reportable_id ON issues USING btree (reportable_type, reportable_id);
--
-- Name: index_issues_on_reported_user_id; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX index_issues_on_reported_user_id ON issues USING btree (reported_user_id);
--
-- Name: index_issues_on_status; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX index_issues_on_status ON issues USING btree (status);
--
-- Name: index_issues_on_updated_by; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX index_issues_on_updated_by ON issues USING btree (updated_by);
--
-- Name: index_note_comments_on_body; Type: INDEX; Schema: public; Owner: -
--
@ -1910,6 +2121,20 @@ CREATE UNIQUE INDEX index_oauth_tokens_on_token ON oauth_tokens USING btree (tok
CREATE INDEX index_oauth_tokens_on_user_id ON oauth_tokens USING btree (user_id);
--
-- Name: index_reports_on_issue_id; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX index_reports_on_issue_id ON reports USING btree (issue_id);
--
-- Name: index_reports_on_user_id; Type: INDEX; Schema: public; Owner: -
--
CREATE INDEX index_reports_on_user_id ON reports USING btree (user_id);
--
-- Name: index_user_blocks_on_user_id; Type: INDEX; Schema: public; Owner: -
--
@ -2329,6 +2554,46 @@ ALTER TABLE ONLY gpx_files
ADD CONSTRAINT gpx_files_user_id_fkey FOREIGN KEY (user_id) REFERENCES users(id);
--
-- Name: issue_comments issue_comments_issue_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY issue_comments
ADD CONSTRAINT issue_comments_issue_id_fkey FOREIGN KEY (issue_id) REFERENCES issues(id);
--
-- Name: issue_comments issue_comments_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY issue_comments
ADD CONSTRAINT issue_comments_user_id_fkey FOREIGN KEY (user_id) REFERENCES users(id);
--
-- Name: issues issues_reported_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY issues
ADD CONSTRAINT issues_reported_user_id_fkey FOREIGN KEY (reported_user_id) REFERENCES users(id);
--
-- Name: issues issues_resolved_by_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY issues
ADD CONSTRAINT issues_resolved_by_fkey FOREIGN KEY (resolved_by) REFERENCES users(id);
--
-- Name: issues issues_updated_by_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY issues
ADD CONSTRAINT issues_updated_by_fkey FOREIGN KEY (updated_by) REFERENCES users(id);
--
-- Name: messages messages_from_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
@ -2441,6 +2706,22 @@ ALTER TABLE ONLY relations
ADD CONSTRAINT relations_redaction_id_fkey FOREIGN KEY (redaction_id) REFERENCES redactions(id);
--
-- Name: reports reports_issue_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY reports
ADD CONSTRAINT reports_issue_id_fkey FOREIGN KEY (issue_id) REFERENCES issues(id);
--
-- Name: reports reports_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY reports
ADD CONSTRAINT reports_user_id_fkey FOREIGN KEY (user_id) REFERENCES users(id);
--
-- Name: user_blocks user_blocks_moderator_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
@ -2584,6 +2865,7 @@ INSERT INTO "schema_migrations" (version) VALUES
('20150111192335'),
('20150222101847'),
('20150818224516'),
('20160822153055'),
('20161002153425'),
('20161011010929'),
('20170222134109'),
@ -2632,5 +2914,3 @@ INSERT INTO "schema_migrations" (version) VALUES
('7'),
('8'),
('9');