Files
tsemple/db/structure.sql
2014-04-12 16:32:58 +08:00

582 lines
13 KiB
SQL

--
-- PostgreSQL database dump
--
SET statement_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;
--
-- 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: attachments; Type: TABLE; Schema: public; Owner: -; Tablespace:
--
CREATE TABLE attachments (
id integer NOT NULL,
user_id integer,
file character varying(255),
created_at timestamp without time zone,
updated_at timestamp without time zone
);
--
-- Name: attachments_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE attachments_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: attachments_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE attachments_id_seq OWNED BY attachments.id;
--
-- Name: categories; Type: TABLE; Schema: public; Owner: -; Tablespace:
--
CREATE TABLE categories (
id integer NOT NULL,
name character varying(255),
slug character varying(255),
description text,
topics_count integer DEFAULT 0,
created_at timestamp without time zone,
updated_at timestamp without time zone
);
--
-- Name: categories_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE categories_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: categories_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE categories_id_seq OWNED BY categories.id;
--
-- Name: comments; Type: TABLE; Schema: public; Owner: -; Tablespace:
--
CREATE TABLE comments (
id integer NOT NULL,
user_id integer,
commentable_id integer,
commentable_type character varying(255),
body text,
likes_count integer DEFAULT 0,
trashed boolean DEFAULT false,
created_at timestamp without time zone,
updated_at timestamp without time zone
);
--
-- Name: comments_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE comments_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: comments_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE comments_id_seq OWNED BY comments.id;
--
-- Name: likes; Type: TABLE; Schema: public; Owner: -; Tablespace:
--
CREATE TABLE likes (
id integer NOT NULL,
user_id integer,
likeable_id integer,
likeable_type character varying(255),
created_at timestamp without time zone,
updated_at timestamp without time zone
);
--
-- Name: likes_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE likes_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: likes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE likes_id_seq OWNED BY likes.id;
--
-- Name: notifications; Type: TABLE; Schema: public; Owner: -; Tablespace:
--
CREATE TABLE notifications (
id integer NOT NULL,
user_id integer,
subject_id integer,
subject_type character varying(255),
name character varying(255),
read boolean DEFAULT false,
created_at timestamp without time zone,
updated_at timestamp without time zone
);
--
-- Name: notifications_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE notifications_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: notifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE notifications_id_seq OWNED BY notifications.id;
--
-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace:
--
CREATE TABLE schema_migrations (
version character varying(255) NOT NULL
);
--
-- Name: subscriptions; Type: TABLE; Schema: public; Owner: -; Tablespace:
--
CREATE TABLE subscriptions (
id integer NOT NULL,
user_id integer,
subscribable_id integer,
subscribable_type character varying(255),
status integer DEFAULT 0,
created_at timestamp without time zone,
updated_at timestamp without time zone
);
--
-- Name: subscriptions_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE subscriptions_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: subscriptions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE subscriptions_id_seq OWNED BY subscriptions.id;
--
-- Name: topics; Type: TABLE; Schema: public; Owner: -; Tablespace:
--
CREATE TABLE topics (
id integer NOT NULL,
user_id integer,
category_id integer,
title character varying(255),
body text,
hot double precision DEFAULT 0.0,
comments_count integer DEFAULT 0,
likes_count integer DEFAULT 0,
subscriptions_count integer DEFAULT 0,
trashed boolean DEFAULT false,
created_at timestamp without time zone,
updated_at timestamp without time zone
);
--
-- Name: topics_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE topics_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: topics_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE topics_id_seq OWNED BY topics.id;
--
-- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace:
--
CREATE TABLE users (
id integer NOT NULL,
name character varying(255),
email character varying(255),
username character varying(255),
password_digest character varying(255),
bio text,
avatar character varying(255),
locale character varying(255),
locked_at timestamp without time zone,
created_at timestamp without time zone,
updated_at timestamp without time zone,
confirmed boolean DEFAULT false
);
--
-- Name: users_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE users_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE users_id_seq OWNED BY users.id;
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY attachments ALTER COLUMN id SET DEFAULT nextval('attachments_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY categories ALTER COLUMN id SET DEFAULT nextval('categories_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY comments ALTER COLUMN id SET DEFAULT nextval('comments_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY likes ALTER COLUMN id SET DEFAULT nextval('likes_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY notifications ALTER COLUMN id SET DEFAULT nextval('notifications_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY subscriptions ALTER COLUMN id SET DEFAULT nextval('subscriptions_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY topics ALTER COLUMN id SET DEFAULT nextval('topics_id_seq'::regclass);
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY users ALTER COLUMN id SET DEFAULT nextval('users_id_seq'::regclass);
--
-- Name: attachments_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
--
ALTER TABLE ONLY attachments
ADD CONSTRAINT attachments_pkey PRIMARY KEY (id);
--
-- Name: categories_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
--
ALTER TABLE ONLY categories
ADD CONSTRAINT categories_pkey PRIMARY KEY (id);
--
-- Name: comments_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
--
ALTER TABLE ONLY comments
ADD CONSTRAINT comments_pkey PRIMARY KEY (id);
--
-- Name: likes_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
--
ALTER TABLE ONLY likes
ADD CONSTRAINT likes_pkey PRIMARY KEY (id);
--
-- Name: notifications_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
--
ALTER TABLE ONLY notifications
ADD CONSTRAINT notifications_pkey PRIMARY KEY (id);
--
-- Name: subscriptions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
--
ALTER TABLE ONLY subscriptions
ADD CONSTRAINT subscriptions_pkey PRIMARY KEY (id);
--
-- Name: topics_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
--
ALTER TABLE ONLY topics
ADD CONSTRAINT topics_pkey PRIMARY KEY (id);
--
-- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace:
--
ALTER TABLE ONLY users
ADD CONSTRAINT users_pkey PRIMARY KEY (id);
--
-- Name: index_attachments_on_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
--
CREATE INDEX index_attachments_on_user_id ON attachments USING btree (user_id);
--
-- Name: index_categories_on_lowercase_slug; Type: INDEX; Schema: public; Owner: -; Tablespace:
--
CREATE UNIQUE INDEX index_categories_on_lowercase_slug ON categories USING btree (lower((slug)::text));
--
-- Name: index_comments_on_commentable_id_and_commentable_type; Type: INDEX; Schema: public; Owner: -; Tablespace:
--
CREATE INDEX index_comments_on_commentable_id_and_commentable_type ON comments USING btree (commentable_id, commentable_type);
--
-- Name: index_comments_on_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
--
CREATE INDEX index_comments_on_user_id ON comments USING btree (user_id);
--
-- Name: index_likes_on_likeable_id_and_likeable_type; Type: INDEX; Schema: public; Owner: -; Tablespace:
--
CREATE INDEX index_likes_on_likeable_id_and_likeable_type ON likes USING btree (likeable_id, likeable_type);
--
-- Name: index_likes_on_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
--
CREATE INDEX index_likes_on_user_id ON likes USING btree (user_id);
--
-- Name: index_notifications_on_subject_id_and_subject_type; Type: INDEX; Schema: public; Owner: -; Tablespace:
--
CREATE INDEX index_notifications_on_subject_id_and_subject_type ON notifications USING btree (subject_id, subject_type);
--
-- Name: index_notifications_on_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
--
CREATE INDEX index_notifications_on_user_id ON notifications USING btree (user_id);
--
-- Name: index_subscriptions_on_subscribable_id_and_subscribable_type; Type: INDEX; Schema: public; Owner: -; Tablespace:
--
CREATE INDEX index_subscriptions_on_subscribable_id_and_subscribable_type ON subscriptions USING btree (subscribable_id, subscribable_type);
--
-- Name: index_subscriptions_on_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
--
CREATE INDEX index_subscriptions_on_user_id ON subscriptions USING btree (user_id);
--
-- Name: index_topics_on_category_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
--
CREATE INDEX index_topics_on_category_id ON topics USING btree (category_id);
--
-- Name: index_topics_on_hot; Type: INDEX; Schema: public; Owner: -; Tablespace:
--
CREATE INDEX index_topics_on_hot ON topics USING btree (hot);
--
-- Name: index_topics_on_user_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
--
CREATE INDEX index_topics_on_user_id ON topics USING btree (user_id);
--
-- Name: index_users_on_lowercase_email; Type: INDEX; Schema: public; Owner: -; Tablespace:
--
CREATE UNIQUE INDEX index_users_on_lowercase_email ON users USING btree (lower((email)::text));
--
-- Name: index_users_on_lowercase_username; Type: INDEX; Schema: public; Owner: -; Tablespace:
--
CREATE UNIQUE INDEX index_users_on_lowercase_username ON users USING btree (lower((username)::text));
--
-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace:
--
CREATE UNIQUE INDEX unique_schema_migrations ON schema_migrations USING btree (version);
--
-- PostgreSQL database dump complete
--
SET search_path TO "$user",public;
INSERT INTO schema_migrations (version) VALUES ('20140103111354');
INSERT INTO schema_migrations (version) VALUES ('20140104125105');
INSERT INTO schema_migrations (version) VALUES ('20140121065043');
INSERT INTO schema_migrations (version) VALUES ('20140130122905');
INSERT INTO schema_migrations (version) VALUES ('20140204053314');
INSERT INTO schema_migrations (version) VALUES ('20140204164212');
INSERT INTO schema_migrations (version) VALUES ('20140208060708');
INSERT INTO schema_migrations (version) VALUES ('20140218070616');
INSERT INTO schema_migrations (version) VALUES ('20140310070632');
INSERT INTO schema_migrations (version) VALUES ('20140405074043');
INSERT INTO schema_migrations (version) VALUES ('20140412065000');