From 822759075cf43cfc99262186830aa329f4034667 Mon Sep 17 00:00:00 2001 From: Matt Amos Date: Wed, 4 Apr 2012 08:34:34 +0100 Subject: [PATCH 1/1] Add redactions table and link it to history tables --- .../20120318201948_create_redactions.rb | 26 ++++++ db/structure.sql | 86 +++++++++++++++++-- 2 files changed, 107 insertions(+), 5 deletions(-) create mode 100644 db/migrate/20120318201948_create_redactions.rb diff --git a/db/migrate/20120318201948_create_redactions.rb b/db/migrate/20120318201948_create_redactions.rb new file mode 100644 index 000000000..bcb3929cb --- /dev/null +++ b/db/migrate/20120318201948_create_redactions.rb @@ -0,0 +1,26 @@ +require 'migrate' + +class CreateRedactions < ActiveRecord::Migration + def up + create_table :redactions do |t| + t.string :title + t.text :description + + t.timestamps + end + + [:nodes, :ways, :relations].each do |tbl| + add_column tbl, :redaction_id, :integer, :null => true + add_foreign_key tbl, [:redaction_id], :redactions, [:id] + end + end + + def down + [:nodes, :ways, :relations].each do |tbl| + remove_foreign_key tbl, [:redaction_id], :redactions, [:id] + remove_column tbl, :redaction_id + end + + drop_table :redactions + end +end diff --git a/db/structure.sql b/db/structure.sql index caf44bd67..d9b0b1ff3 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -695,7 +695,8 @@ CREATE TABLE nodes ( visible boolean NOT NULL, "timestamp" timestamp without time zone NOT NULL, tile bigint NOT NULL, - version bigint NOT NULL + version bigint NOT NULL, + redaction_id integer ); @@ -778,6 +779,38 @@ CREATE SEQUENCE oauth_tokens_id_seq ALTER SEQUENCE oauth_tokens_id_seq OWNED BY oauth_tokens.id; +-- +-- Name: redactions; Type: TABLE; Schema: public; Owner: -; Tablespace: +-- + +CREATE TABLE redactions ( + id integer NOT NULL, + title character varying(255), + description text, + created_at timestamp without time zone NOT NULL, + updated_at timestamp without time zone NOT NULL +); + + +-- +-- Name: redactions_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE redactions_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: redactions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE redactions_id_seq OWNED BY redactions.id; + + -- -- Name: relation_members; Type: TABLE; Schema: public; Owner: -; Tablespace: -- @@ -813,7 +846,8 @@ CREATE TABLE relations ( changeset_id bigint NOT NULL, "timestamp" timestamp without time zone NOT NULL, version bigint NOT NULL, - visible boolean DEFAULT true NOT NULL + visible boolean DEFAULT true NOT NULL, + redaction_id integer ); @@ -967,8 +1001,8 @@ CREATE TABLE users ( preferred_editor character varying(255), terms_seen boolean DEFAULT false NOT NULL, openid_url character varying(255), - image_fingerprint character varying(255), - description_format format_enum DEFAULT 'html'::format_enum NOT NULL + description_format format_enum DEFAULT 'html'::format_enum NOT NULL, + image_fingerprint character varying(255) ); @@ -1024,7 +1058,8 @@ CREATE TABLE ways ( changeset_id bigint NOT NULL, "timestamp" timestamp without time zone NOT NULL, version bigint NOT NULL, - visible boolean DEFAULT true NOT NULL + visible boolean DEFAULT true NOT NULL, + redaction_id integer ); @@ -1133,6 +1168,13 @@ ALTER TABLE ONLY oauth_nonces ALTER COLUMN id SET DEFAULT nextval('oauth_nonces_ ALTER TABLE ONLY oauth_tokens ALTER COLUMN id SET DEFAULT nextval('oauth_tokens_id_seq'::regclass); +-- +-- Name: id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY redactions ALTER COLUMN id SET DEFAULT nextval('redactions_id_seq'::regclass); + + -- -- Name: id; Type: DEFAULT; Schema: public; Owner: - -- @@ -1345,6 +1387,14 @@ ALTER TABLE ONLY oauth_tokens ADD CONSTRAINT oauth_tokens_pkey PRIMARY KEY (id); +-- +-- Name: redactions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: +-- + +ALTER TABLE ONLY redactions + ADD CONSTRAINT redactions_pkey PRIMARY KEY (id); + + -- -- Name: relation_members_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- @@ -1997,6 +2047,14 @@ ALTER TABLE ONLY nodes ADD CONSTRAINT nodes_changeset_id_fkey FOREIGN KEY (changeset_id) REFERENCES changesets(id); +-- +-- Name: nodes_redaction_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY nodes + ADD CONSTRAINT nodes_redaction_id_fkey FOREIGN KEY (redaction_id) REFERENCES redactions(id); + + -- -- Name: oauth_tokens_client_application_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -2037,6 +2095,14 @@ ALTER TABLE ONLY relations ADD CONSTRAINT relations_changeset_id_fkey FOREIGN KEY (changeset_id) REFERENCES changesets(id); +-- +-- Name: relations_redaction_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY relations + ADD CONSTRAINT relations_redaction_id_fkey FOREIGN KEY (redaction_id) REFERENCES redactions(id); + + -- -- Name: user_blocks_moderator_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -2117,6 +2183,14 @@ ALTER TABLE ONLY ways ADD CONSTRAINT ways_changeset_id_fkey FOREIGN KEY (changeset_id) REFERENCES changesets(id); +-- +-- Name: ways_redaction_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY ways + ADD CONSTRAINT ways_redaction_id_fkey FOREIGN KEY (redaction_id) REFERENCES redactions(id); + + -- -- PostgreSQL database dump complete -- @@ -2173,6 +2247,8 @@ INSERT INTO schema_migrations (version) VALUES ('20120214210114'); INSERT INTO schema_migrations (version) VALUES ('20120219161649'); +INSERT INTO schema_migrations (version) VALUES ('20120318201948'); + INSERT INTO schema_migrations (version) VALUES ('20120328090602'); INSERT INTO schema_migrations (version) VALUES ('21'); -- 2.43.2