Add redactions table and link it to history tables
authorMatt Amos <zerebubuth@gmail.com>
Wed, 4 Apr 2012 07:34:34 +0000 (08:34 +0100)
committerTom Hughes <tom@compton.nu>
Wed, 4 Apr 2012 07:43:44 +0000 (08:43 +0100)
db/migrate/20120318201948_create_redactions.rb [new file with mode: 0644]
db/structure.sql

diff --git a/db/migrate/20120318201948_create_redactions.rb b/db/migrate/20120318201948_create_redactions.rb
new file mode 100644 (file)
index 0000000..bcb3929
--- /dev/null
@@ -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
index caf44bd6787361debe294f95bf97fb8af073a255..d9b0b1ff369503c4b0ec5ea05348269a95b19e4a 100644 (file)
@@ -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');