From 55d5c9566bee62f2091bcb8b945c87b8edcfc2f0 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 22 Aug 2011 18:22:27 -0400 Subject: [PATCH] remove obsolete .sql files --- db/074to080.sql | 121 ------- db/074to080_pg.sql | 108 ------ db/08to09.sql | 190 ----------- db/08to09_pg.sql | 140 -------- db/095topeopletags.sql | 4 - db/096to097.sql | 26 -- db/beta5tobeta6.sql | 28 -- db/innodb.sql | 2 - db/rc2torc3.sql | 17 - db/rc3torc4.sql | 50 --- db/site_093to094.sql | 13 - db/statusnet.sql | 759 ----------------------------------------- db/statusnet_pg.sql | 649 ----------------------------------- 13 files changed, 2107 deletions(-) delete mode 100644 db/074to080.sql delete mode 100644 db/074to080_pg.sql delete mode 100644 db/08to09.sql delete mode 100644 db/08to09_pg.sql delete mode 100644 db/095topeopletags.sql delete mode 100644 db/096to097.sql delete mode 100644 db/beta5tobeta6.sql delete mode 100644 db/innodb.sql delete mode 100644 db/rc2torc3.sql delete mode 100644 db/rc3torc4.sql delete mode 100644 db/site_093to094.sql delete mode 100644 db/statusnet.sql delete mode 100644 db/statusnet_pg.sql diff --git a/db/074to080.sql b/db/074to080.sql deleted file mode 100644 index e3631e214a..0000000000 --- a/db/074to080.sql +++ /dev/null @@ -1,121 +0,0 @@ -alter table user - add column design_id integer comment 'id of a design' references design(id), - add column viewdesigns tinyint default 1 comment 'whether to view user-provided designs'; - -alter table notice add column - conversation integer comment 'id of root notice in this conversation' references notice (id), - add index notice_conversation_idx (conversation); - -alter table foreign_user - modify column id bigint not null comment 'unique numeric key on foreign service'; - -alter table foreign_link - modify column foreign_id bigint unsigned comment 'link to user on foreign service, if exists'; - -alter table user_group - add column design_id integer comment 'id of a design' references design(id); - -create table file ( - id integer primary key auto_increment, - url varchar(255) comment 'destination URL after following redirections', - mimetype varchar(50) comment 'mime type of resource', - size integer comment 'size of resource when available', - title varchar(255) comment 'title of resource when available', - date integer(11) comment 'date of resource according to http query', - protected integer(1) comment 'true when URL is private (needs login)', - filename varchar(255) comment 'if a local file, name of the file', - modified timestamp comment 'date this record was modified', - - unique(url) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci; - -create table file_oembed ( - file_id integer primary key comment 'oEmbed for that URL/file' references file (id), - version varchar(20) comment 'oEmbed spec. version', - type varchar(20) comment 'oEmbed type: photo, video, link, rich', - provider varchar(50) comment 'name of this oEmbed provider', - provider_url varchar(255) comment 'URL of this oEmbed provider', - width integer comment 'width of oEmbed resource when available', - height integer comment 'height of oEmbed resource when available', - html text comment 'html representation of this oEmbed resource when applicable', - title varchar(255) comment 'title of oEmbed resource when available', - author_name varchar(50) comment 'author name for this oEmbed resource', - author_url varchar(255) comment 'author URL for this oEmbed resource', - url varchar(255) comment 'URL for this oEmbed resource when applicable (photo, link)', - modified timestamp comment 'date this record was modified' - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci; - -create table file_redirection ( - - url varchar(255) primary key comment 'short URL (or any other kind of redirect) for file (id)', - file_id integer comment 'short URL for what URL/file' references file (id), - redirections integer comment 'redirect count', - httpcode integer comment 'HTTP status code (20x, 30x, etc.)', - modified timestamp comment 'date this record was modified' - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table file_thumbnail ( - - file_id integer primary key comment 'thumbnail for what URL/file' references file (id), - url varchar(255) comment 'URL of thumbnail', - width integer comment 'width of thumbnail', - height integer comment 'height of thumbnail', - modified timestamp comment 'date this record was modified', - - unique(url) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table file_to_post ( - - file_id integer comment 'id of URL/file' references file (id), - post_id integer comment 'id of the notice it belongs to' references notice (id), - modified timestamp comment 'date this record was modified', - - constraint primary key (file_id, post_id) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table design ( - id integer primary key auto_increment comment 'design ID', - backgroundcolor integer comment 'main background color', - contentcolor integer comment 'content area background color', - sidebarcolor integer comment 'sidebar background color', - textcolor integer comment 'text color', - linkcolor integer comment 'link color', - backgroundimage varchar(255) comment 'background image, if any', - disposition tinyint default 1 comment 'bit 1 = hide background image, bit 2 = display background image, bit 4 = tile background image' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table group_block ( - group_id integer not null comment 'group profile is blocked from' references user_group (id), - blocked integer not null comment 'profile that is blocked' references profile (id), - blocker integer not null comment 'user making the block' references user (id), - modified timestamp comment 'date of blocking', - - constraint primary key (group_id, blocked) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table group_alias ( - - alias varchar(64) primary key comment 'additional nickname for the group', - group_id integer not null comment 'group profile is blocked from' references user_group (id), - modified timestamp comment 'date alias was created', - - index group_alias_group_id_idx (group_id) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table session ( - - id varchar(32) primary key comment 'session ID', - session_data text comment 'session data', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - index session_modified_idx (modified) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - diff --git a/db/074to080_pg.sql b/db/074to080_pg.sql deleted file mode 100644 index 0a7171ae56..0000000000 --- a/db/074to080_pg.sql +++ /dev/null @@ -1,108 +0,0 @@ -BEGIN; -create sequence design_seq; -create table design ( - id bigint default nextval('design_seq') /* comment 'design ID'*/, - backgroundcolor integer /* comment 'main background color'*/ , - contentcolor integer /*comment 'content area background color'*/ , - sidebarcolor integer /*comment 'sidebar background color'*/ , - textcolor integer /*comment 'text color'*/ , - linkcolor integer /*comment 'link color'*/, - backgroundimage varchar(255) /*comment 'background image, if any'*/, - disposition int default 1 /*comment 'bit 1 = hide background image, bit 2 = display background image, bit 4 = tile background image'*/, - primary key (id) -); -alter table "user" - add column design_id integer references design(id); -alter table "user" - add column viewdesigns integer default 1; - -alter table notice add column - conversation integer references notice (id); - -create index notice_conversation_idx on notice(conversation); - -alter table foreign_user - alter column id TYPE bigint; - -alter table foreign_user alter column id set not null; - -alter table foreign_link - alter column foreign_id TYPE bigint; - -alter table user_group - add column design_id integer; - -/*attachments and URLs stuff */ -create sequence file_seq; -create table file ( - id bigint default nextval('file_seq') primary key /* comment 'unique identifier' */, - url varchar(255) unique, - mimetype varchar(50), - size integer, - title varchar(255), - date integer, - protected integer, - filename text /* comment 'if a local file, name of the file' */, - modified timestamp default CURRENT_TIMESTAMP /* comment 'date this record was modified'*/ -); - -create sequence file_oembed_seq; -create table file_oembed ( - file_id bigint default nextval('file_oembed_seq') primary key /* comment 'unique identifier' */, - version varchar(20), - type varchar(20), - provider varchar(50), - provider_url varchar(255), - width integer, - height integer, - html text, - title varchar(255), - author_name varchar(50), - author_url varchar(255), - url varchar(255) -); - -create sequence file_redirection_seq; -create table file_redirection ( - url varchar(255) primary key, - file_id bigint, - redirections integer, - httpcode integer -); - -create sequence file_thumbnail_seq; -create table file_thumbnail ( - file_id bigint primary key, - url varchar(255) unique, - width integer, - height integer -); -create sequence file_to_post_seq; -create table file_to_post ( - file_id bigint, - post_id bigint, - - primary key (file_id, post_id) -); - - -create table group_block ( - group_id integer not null /* comment 'group profile is blocked from' */ references user_group (id), - blocked integer not null /* comment 'profile that is blocked' */references profile (id), - blocker integer not null /* comment 'user making the block'*/ references "user" (id), - modified timestamp /* comment 'date of blocking'*/ , - - primary key (group_id, blocked) -); - -create table group_alias ( - - alias varchar(64) /* comment 'additional nickname for the group'*/ , - group_id integer not null /* comment 'group profile is blocked from'*/ references user_group (id), - modified timestamp /* comment 'date alias was created'*/, - primary key (alias) - -); -create index group_alias_group_id_idx on group_alias (group_id); - -COMMIT; \ No newline at end of file diff --git a/db/08to09.sql b/db/08to09.sql deleted file mode 100644 index ba6f382005..0000000000 --- a/db/08to09.sql +++ /dev/null @@ -1,190 +0,0 @@ -alter table notice - modify column content text comment 'update content', - add column lat decimal(10,7) comment 'latitude', - add column lon decimal(10,7) comment 'longitude', - add column location_id integer comment 'location id if possible', - add column location_ns integer comment 'namespace for location', - add column repeat_of integer comment 'notice this is a repeat of' references notice (id), - drop index notice_profile_id_idx, - add index notice_profile_id_idx (profile_id,created,id), - add index notice_repeatof_idx (repeat_of); - -alter table message - modify column content text comment 'message content'; - -alter table profile - modify column bio text comment 'descriptive biography', - add column lat decimal(10,7) comment 'latitude', - add column lon decimal(10,7) comment 'longitude', - add column location_id integer comment 'location id if possible', - add column location_ns integer comment 'namespace for location'; - -alter table user_group - modify column description text comment 'group description'; - -alter table file_oembed - add column mimetype varchar(50) comment 'mime type of resource'; - -alter table fave - drop index fave_user_id_idx, - add index fave_user_id_idx (user_id,modified); - -alter table subscription - drop index subscription_subscriber_idx, - add index subscription_subscriber_idx (subscriber,created), - drop index subscription_subscribed_idx, - add index subscription_subscribed_idx (subscribed,created); - -create table deleted_notice ( - - id integer primary key comment 'identity of notice', - profile_id integer not null comment 'author of the notice', - uri varchar(255) unique key comment 'universally unique identifier, usually a tag URI', - created datetime not null comment 'date the notice record was created', - deleted datetime not null comment 'date the notice record was created', - - index deleted_notice_profile_id_idx (profile_id) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table config ( - - section varchar(32) comment 'configuration section', - setting varchar(32) comment 'configuration setting', - value varchar(255) comment 'configuration value', - - constraint primary key (section, setting) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table profile_role ( - - profile_id integer not null comment 'account having the role' references profile (id), - role varchar(32) not null comment 'string representing the role', - created datetime not null comment 'date the role was granted', - - constraint primary key (profile_id, role) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table location_namespace ( - - id integer primary key comment 'identity for this namespace', - description varchar(255) comment 'description of the namespace', - created datetime not null comment 'date the record was created', - modified timestamp comment 'date this record was modified' - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table login_token ( - user_id integer not null comment 'user owning this token' references user (id), - token char(32) not null comment 'token useable for logging in', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (user_id) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table user_location_prefs ( - user_id integer not null comment 'user who has the preference' references user (id), - share_location tinyint default 1 comment 'Whether to share location data', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (user_id) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table queue_item_new ( - id integer auto_increment primary key comment 'unique identifier', - frame blob not null comment 'data: object reference or opaque string', - transport varchar(8) not null comment 'queue for what? "email", "jabber", "sms", "irc", ...', - created datetime not null comment 'date this record was created', - claimed datetime comment 'date this item was claimed', - - index queue_item_created_idx (created) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -insert into queue_item_new (frame,transport,created,claimed) - select notice_id,transport,created,claimed from queue_item; -alter table queue_item rename to queue_item_old; -alter table queue_item_new rename to queue_item; - -alter table consumer - add consumer_secret varchar(255) not null comment 'secret value'; - -alter table token - add verifier varchar(255) comment 'verifier string for OAuth 1.0a', - add verified_callback varchar(255) comment 'verified callback URL for OAuth 1.0a'; - -create table oauth_application ( - id integer auto_increment primary key comment 'unique identifier', - owner integer not null comment 'owner of the application' references profile (id), - consumer_key varchar(255) not null comment 'application consumer key' references consumer (consumer_key), - name varchar(255) not null comment 'name of the application', - description varchar(255) comment 'description of the application', - icon varchar(255) not null comment 'application icon', - source_url varchar(255) comment 'application homepage - used for source link', - organization varchar(255) comment 'name of the organization running the application', - homepage varchar(255) comment 'homepage for the organization', - callback_url varchar(255) comment 'url to redirect to after authentication', - type tinyint default 0 comment 'type of app, 1 = browser, 2 = desktop', - access_type tinyint default 0 comment 'default access type, bit 1 = read, bit 2 = write', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table oauth_application_user ( - profile_id integer not null comment 'user of the application' references profile (id), - application_id integer not null comment 'id of the application' references oauth_application (id), - access_type tinyint default 0 comment 'access type, bit 1 = read, bit 2 = write, bit 3 = revoked', - token varchar(255) comment 'request or access token', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - constraint primary key (profile_id, application_id) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table inbox ( - - user_id integer not null comment 'user receiving the notice' references user (id), - notice_ids blob comment 'packed list of notice ids', - - constraint primary key (user_id) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table conversation ( - id integer auto_increment primary key comment 'unique identifier', - uri varchar(225) unique comment 'URI of the conversation', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - --- stub entry to push the autoincrement past existing notice ids -insert into conversation (id,created) - select max(id)+1, now() from notice; - -alter table user_group - add uri varchar(255) unique key comment 'universal identifier', - add mainpage varchar(255) comment 'page for group info to link to', - drop index nickname; - -create table local_group ( - - group_id integer primary key comment 'group represented' references user_group (id), - nickname varchar(64) unique key comment 'group represented', - - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -insert into local_group (group_id, nickname, created) - select id, nickname, created from user_group; - -alter table file_to_post - add index post_id_idx (post_id); - -alter table group_inbox - add index group_inbox_notice_id_idx (notice_id); - diff --git a/db/08to09_pg.sql b/db/08to09_pg.sql deleted file mode 100644 index d3eb644437..0000000000 --- a/db/08to09_pg.sql +++ /dev/null @@ -1,140 +0,0 @@ --- SQL commands to update an 0.8.x version of Laconica --- to 0.9.x. - ---these are just comments -/* -alter table notice - modify column content text comment 'update content'; - -alter table message - modify column content text comment 'message content'; - -alter table profile - modify column bio text comment 'descriptive biography'; - -alter table user_group - modify column description text comment 'group description'; -*/ - -alter table file_oembed - add column mimetype varchar(50) /*comment 'mime type of resource'*/; - -create table config ( - - section varchar(32) /* comment 'configuration section'*/, - setting varchar(32) /* comment 'configuration setting'*/, - value varchar(255) /* comment 'configuration value'*/, - - primary key (section, setting) - -); - -create table profile_role ( - - profile_id integer not null /* comment 'account having the role'*/ references profile (id), - role varchar(32) not null /* comment 'string representing the role'*/, - created timestamp /* not null comment 'date the role was granted'*/, - - primary key (profile_id, role) - -); - -create table location_namespace ( - - id integer /*comment 'identity for this namespace'*/, - description text /* comment 'description of the namespace'*/ , - created integer not null /*comment 'date the record was created*/ , - /* modified timestamp comment 'date this record was modified',*/ - primary key (id) - -); - -create table login_token ( - user_id integer not null /* comment 'user owning this token'*/ references "user" (id), - token char(32) not null /* comment 'token useable for logging in'*/, - created timestamp not null DEFAULT CURRENT_TIMESTAMP /* comment 'date this record was created'*/, - modified timestamp /* comment 'date this record was modified'*/, - - primary key (user_id) -); - -DROP index fave_user_id_idx; -CREATE index fave_user_id_idx on fave (user_id,modified); - -DROP index subscription_subscriber_idx; -CREATE index subscription_subscriber_idx ON subscription (subscriber,created); - -DROP index subscription_subscribed_idx; -CREATE index subscription_subscribed_idx ON subscription (subscribed,created); - -DROP index notice_profile_id_idx; -CREATE index notice_profile_id_idx ON notice (profile_id,created,id); - -ALTER TABLE notice ADD COLUMN lat decimal(10, 7) /* comment 'latitude'*/; -ALTER TABLE notice ADD COLUMN lon decimal(10,7) /* comment 'longitude'*/; -ALTER TABLE notice ADD COLUMN location_id integer /* comment 'location id if possible'*/ ; -ALTER TABLE notice ADD COLUMN location_ns integer /* comment 'namespace for location'*/; -ALTER TABLE notice ADD COLUMN repeat_of integer /* comment 'notice this is a repeat of' */ references notice (id); - -ALTER TABLE profile ADD COLUMN lat decimal(10,7) /*comment 'latitude'*/ ; -ALTER TABLE profile ADD COLUMN lon decimal(10,7) /*comment 'longitude'*/; -ALTER TABLE profile ADD COLUMN location_id integer /* comment 'location id if possible'*/; -ALTER TABLE profile ADD COLUMN location_ns integer /* comment 'namespace for location'*/; - -ALTER TABLE consumer add COLUMN consumer_secret varchar(255) not null ; /*comment 'secret value'*/ - -ALTER TABLE token ADD COLUMN verifier varchar(255); /* comment 'verifier string for OAuth 1.0a',*/ -ALTER TABLE token ADD COLUMN verified_callback varchar(255); /* comment 'verified callback URL for OAuth 1.0a',*/ - -create table queue_item_new ( - id serial /* comment 'unique identifier'*/, - frame bytea not null /* comment 'data: object reference or opaque string'*/, - transport varchar(8) not null /*comment 'queue for what? "email", "jabber", "sms", "irc", ...'*/, - created timestamp not null default CURRENT_TIMESTAMP /*comment 'date this record was created'*/, - claimed timestamp /*comment 'date this item was claimed'*/, - PRIMARY KEY (id) -); - -insert into queue_item_new (frame,transport,created,claimed) - select ('0x' || notice_id::text)::bytea,transport,created,claimed from queue_item; -alter table queue_item rename to queue_item_old; -alter table queue_item_new rename to queue_item; - -ALTER TABLE confirm_address ALTER column sent set default CURRENT_TIMESTAMP; - -create table user_location_prefs ( - user_id integer not null /*comment 'user who has the preference'*/ references "user" (id), - share_location int default 1 /* comment 'Whether to share location data'*/, - created timestamp not null /*comment 'date this record was created'*/, - modified timestamp /* comment 'date this record was modified'*/, - - primary key (user_id) -); - -create table inbox ( - - user_id integer not null /* comment 'user receiving the notice' */ references "user" (id), - notice_ids bytea /* comment 'packed list of notice ids' */, - - primary key (user_id) - -); - -create table user_location_prefs ( - user_id integer not null /*comment 'user who has the preference'*/ references "user" (id), - share_location int default 1 /* comment 'Whether to share location data'*/, - created timestamp not null /*comment 'date this record was created'*/, - modified timestamp /* comment 'date this record was modified'*/, - - primary key (user_id) -); - -create table inbox ( - - user_id integer not null /* comment 'user receiving the notice' */ references "user" (id), - notice_ids bytea /* comment 'packed list of notice ids' */, - - primary key (user_id) - -); - diff --git a/db/095topeopletags.sql b/db/095topeopletags.sql deleted file mode 100644 index e193b98156..0000000000 --- a/db/095topeopletags.sql +++ /dev/null @@ -1,4 +0,0 @@ -/* populate people tags metadata */ - -insert into profile_list (tagger, tag, modified, description, private) - select distinct tagger, tag, modified, null, false from profile_tag; diff --git a/db/096to097.sql b/db/096to097.sql deleted file mode 100644 index 209a3a8811..0000000000 --- a/db/096to097.sql +++ /dev/null @@ -1,26 +0,0 @@ --- Add indexes for sorting changes in 0.9.7 - --- Allows sorting public timeline, api/statuses/repeats, and conversations by timestamp efficiently -alter table notice - add index notice_created_id_is_local_idx (created,id,is_local), - - add index notice_repeat_of_created_id_idx (repeat_of, created, id), - drop index notice_repeatof_idx, - - add index notice_conversation_created_id_idx (conversation, created, id), - drop index notice_conversation_idx; - --- Allows sorting tag-filtered public timeline by timestamp efficiently -alter table notice_tag add index notice_tag_tag_created_notice_id_idx (tag, created, notice_id); - --- Needed for sorting reply/mentions timelines -alter table reply add index reply_profile_id_modified_notice_id_idx (profile_id, modified, notice_id); - --- Needed for sorting group messages by timestamp -alter table group_inbox add index group_inbox_group_id_created_notice_id_idx (group_id, created, notice_id); - --- Helps make some reverse role lookups more efficient if there's a lot of assigned accounts -alter table profile_role add index profile_role_role_created_profile_id_idx (role, created, profile_id); - --- Fix for sorting a user's group memberships by order joined -alter table group_member add index group_member_profile_id_created_idx (profile_id, created); diff --git a/db/beta5tobeta6.sql b/db/beta5tobeta6.sql deleted file mode 100644 index e9dff17efe..0000000000 --- a/db/beta5tobeta6.sql +++ /dev/null @@ -1,28 +0,0 @@ -alter table oauth_application - modify column name varchar(255) not null unique key comment 'name of the application', - modify column access_type tinyint default 0 comment 'access type, bit 1 = read, bit 2 = write'; - -alter table user_group -add column uri varchar(255) unique key comment 'universal identifier', -add column mainpage varchar(255) comment 'page for group info to link to', -drop index nickname; - -create table conversation ( - id integer auto_increment primary key comment 'unique identifier', - uri varchar(225) unique comment 'URI of the conversation', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table local_group ( - group_id integer primary key comment 'group represented' references user_group (id), - nickname varchar(64) unique key comment 'group represented', - - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -insert into local_group (group_id, nickname, created) -select id, nickname, created from user_group; - diff --git a/db/innodb.sql b/db/innodb.sql deleted file mode 100644 index f3ab6cd690..0000000000 --- a/db/innodb.sql +++ /dev/null @@ -1,2 +0,0 @@ -alter table profile drop index nickname, engine=InnoDB; -alter table notice drop index content, engine=InnoDB; diff --git a/db/rc2torc3.sql b/db/rc2torc3.sql deleted file mode 100644 index 886b9adf22..0000000000 --- a/db/rc2torc3.sql +++ /dev/null @@ -1,17 +0,0 @@ -create table user_location_prefs ( - user_id integer not null comment 'user who has the preference' references user (id), - share_location tinyint default 1 comment 'Whether to share location data', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (user_id) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table inbox ( - - user_id integer not null comment 'user receiving the notice' references user (id), - notice_ids blob comment 'packed list of notice ids', - - constraint primary key (user_id) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; diff --git a/db/rc3torc4.sql b/db/rc3torc4.sql deleted file mode 100644 index 917c1f1c41..0000000000 --- a/db/rc3torc4.sql +++ /dev/null @@ -1,50 +0,0 @@ -create table queue_item_new ( - id integer auto_increment primary key comment 'unique identifier', - frame blob not null comment 'data: object reference or opaque string', - transport varchar(8) not null comment 'queue for what? "email", "jabber", "sms", "irc", ...', - created datetime not null comment 'date this record was created', - claimed datetime comment 'date this item was claimed', - - index queue_item_created_idx (created) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -insert into queue_item_new (frame,transport,created,claimed) - select notice_id,transport,created,claimed from queue_item; -alter table queue_item rename to queue_item_old; -alter table queue_item_new rename to queue_item; - -alter table consumer - add consumer_secret varchar(255) not null comment 'secret value'; - -alter table token - add verifier varchar(255) comment 'verifier string for OAuth 1.0a', - add verified_callback varchar(255) comment 'verified callback URL for OAuth 1.0a'; - -create table oauth_application ( - id integer auto_increment primary key comment 'unique identifier', - owner integer not null comment 'owner of the application' references profile (id), - consumer_key varchar(255) not null comment 'application consumer key' references consumer (consumer_key), - name varchar(255) not null comment 'name of the application', - description varchar(255) comment 'description of the application', - icon varchar(255) not null comment 'application icon', - source_url varchar(255) comment 'application homepage - used for source link', - organization varchar(255) comment 'name of the organization running the application', - homepage varchar(255) comment 'homepage for the organization', - callback_url varchar(255) comment 'url to redirect to after authentication', - type tinyint default 0 comment 'type of app, 1 = browser, 2 = desktop', - access_type tinyint default 0 comment 'default access type, bit 1 = read, bit 2 = write', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table oauth_application_user ( - profile_id integer not null comment 'user of the application' references profile (id), - application_id integer not null comment 'id of the application' references oauth_application (id), - access_type tinyint default 0 comment 'access type, bit 1 = read, bit 2 = write, bit 3 = revoked', - token varchar(255) comment 'request or access token', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - constraint primary key (profile_id, application_id) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - diff --git a/db/site_093to094.sql b/db/site_093to094.sql deleted file mode 100644 index 30cea31dfa..0000000000 --- a/db/site_093to094.sql +++ /dev/null @@ -1,13 +0,0 @@ -alter table status_network - drop primary key, - add column site_id integer auto_increment primary key first, - add unique key (nickname); - -create table status_network_tag ( - site_id integer comment 'unique id', - tag varchar(64) comment 'tag name', - created datetime not null comment 'date the record was created', - - constraint primary key (site_id, tag) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci; - diff --git a/db/statusnet.sql b/db/statusnet.sql deleted file mode 100644 index 29a555948b..0000000000 --- a/db/statusnet.sql +++ /dev/null @@ -1,759 +0,0 @@ -/* local and remote users have profiles */ - -create table profile ( - - id integer auto_increment primary key comment 'unique identifier', - nickname varchar(64) not null comment 'nickname or username', - fullname varchar(255) comment 'display name', - profileurl varchar(255) comment 'URL, cached so we dont regenerate', - homepage varchar(255) comment 'identifying URL', - bio text comment 'descriptive biography', - location varchar(255) comment 'physical location', - lat decimal(10,7) comment 'latitude', - lon decimal(10,7) comment 'longitude', - location_id integer comment 'location id if possible', - location_ns integer comment 'namespace for location', - - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - index profile_nickname_idx (nickname), - FULLTEXT(nickname, fullname, location, bio, homepage) -) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; - -create table avatar ( - profile_id integer not null comment 'foreign key to profile table' references profile (id), - original boolean default false comment 'uploaded by user or generated?', - width integer not null comment 'image width', - height integer not null comment 'image height', - mediatype varchar(32) not null comment 'file type', - filename varchar(255) null comment 'local filename, if local', - url varchar(255) unique key comment 'avatar location', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (profile_id, width, height), - index avatar_profile_id_idx (profile_id) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table sms_carrier ( - id integer primary key comment 'primary key for SMS carrier', - name varchar(64) unique key comment 'name of the carrier', - email_pattern varchar(255) not null comment 'sprintf pattern for making an email address from a phone number', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -/* local users */ - -create table user ( - - id integer primary key comment 'foreign key to profile table' references profile (id), - nickname varchar(64) unique key comment 'nickname or username, duped in profile', - password varchar(255) comment 'salted password, can be null for OpenID users', - email varchar(255) unique key comment 'email address for password recovery etc.', - incomingemail varchar(255) unique key comment 'email address for post-by-email', - emailnotifysub tinyint default 1 comment 'Notify by email of subscriptions', - emailnotifyfav tinyint default 1 comment 'Notify by email of favorites', - emailnotifynudge tinyint default 1 comment 'Notify by email of nudges', - emailnotifymsg tinyint default 1 comment 'Notify by email of direct messages', - emailnotifyattn tinyint default 1 comment 'Notify by email of @-replies', - emailmicroid tinyint default 1 comment 'whether to publish email microid', - language varchar(50) comment 'preferred language', - timezone varchar(50) comment 'timezone', - emailpost tinyint default 1 comment 'Post by email', - sms varchar(64) unique key comment 'sms phone number', - carrier integer comment 'foreign key to sms_carrier' references sms_carrier (id), - smsnotify tinyint default 0 comment 'whether to send notices to SMS', - smsreplies tinyint default 0 comment 'whether to send notices to SMS on replies', - smsemail varchar(255) comment 'built from sms and carrier', - uri varchar(255) unique key comment 'universally unique identifier, usually a tag URI', - autosubscribe tinyint default 0 comment 'automatically subscribe to users who subscribe to us', - urlshorteningservice varchar(50) default 'ur1.ca' comment 'service to use for auto-shortening URLs', - inboxed tinyint default 0 comment 'has an inbox been created for this user?', - design_id integer comment 'id of a design' references design(id), - viewdesigns tinyint default 1 comment 'whether to view user-provided designs', - - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - index user_smsemail_idx (smsemail) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci; - -/* remote people */ - -create table remote_profile ( - id integer primary key comment 'foreign key to profile table' references profile (id), - uri varchar(255) unique key comment 'universally unique identifier, usually a tag URI', - postnoticeurl varchar(255) comment 'URL we use for posting notices', - updateprofileurl varchar(255) comment 'URL we use for updates to this profile', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table subscription ( - subscriber integer not null comment 'profile listening', - subscribed integer not null comment 'profile being listened to', - jabber tinyint default 1 comment 'deliver jabber messages', - sms tinyint default 1 comment 'deliver sms messages', - token varchar(255) comment 'authorization token', - secret varchar(255) comment 'token secret', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (subscriber, subscribed), - index subscription_subscriber_idx (subscriber, created), - index subscription_subscribed_idx (subscribed, created), - index subscription_token_idx (token) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table notice ( - id integer auto_increment primary key comment 'unique identifier', - profile_id integer not null comment 'who made the update' references profile (id), - uri varchar(255) unique key comment 'universally unique identifier, usually a tag URI', - content text comment 'update content', - rendered text comment 'HTML version of the content', - url varchar(255) comment 'URL of any attachment (image, video, bookmark, whatever)', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - reply_to integer comment 'notice replied to (usually a guess)' references notice (id), - is_local tinyint default 0 comment 'notice was generated by a user', - source varchar(32) comment 'source of comment, like "web", "im", or "clientname"', - conversation integer comment 'id of root notice in this conversation' references notice (id), - lat decimal(10,7) comment 'latitude', - lon decimal(10,7) comment 'longitude', - location_id integer comment 'location id if possible', - location_ns integer comment 'namespace for location', - repeat_of integer comment 'notice this is a repeat of' references notice (id), - - -- For public timeline... - index notice_created_id_is_local_idx (created,id,is_local), - - -- For profile timelines... - index notice_profile_id_idx (profile_id,created,id), - - -- For api/statuses/repeats... - index notice_repeat_of_created_id_idx (repeat_of, created, id), - - -- For conversation views - index notice_conversation_created_id_idx (conversation, created, id), - - -- Are these needed/used? - index notice_replyto_idx (reply_to), - - FULLTEXT(content) -) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; - -create table notice_source ( - code varchar(32) primary key not null comment 'source code', - name varchar(255) not null comment 'name of the source', - url varchar(255) not null comment 'url to link to', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table reply ( - notice_id integer not null comment 'notice that is the reply' references notice (id), - profile_id integer not null comment 'profile replied to' references profile (id), - modified timestamp not null comment 'date this record was modified', - replied_id integer comment 'notice replied to (not used, see notice.reply_to)', - - constraint primary key (notice_id, profile_id), - index reply_notice_id_idx (notice_id), - index reply_profile_id_idx (profile_id), - index reply_replied_id_idx (replied_id), - - -- Needed for sorting reply/mentions timelines - index reply_profile_id_modified_notice_id_idx (profile_id, modified, notice_id) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table fave ( - notice_id integer not null comment 'notice that is the favorite' references notice (id), - user_id integer not null comment 'user who likes this notice' references user (id), - modified timestamp not null comment 'date this record was modified', - - constraint primary key (notice_id, user_id), - index fave_notice_id_idx (notice_id), - index fave_user_id_idx (user_id,modified), - index fave_modified_idx (modified) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -/* tables for OAuth */ - -create table consumer ( - consumer_key varchar(255) primary key comment 'unique identifier, root URL', - consumer_secret varchar(255) not null comment 'secret value', - seed char(32) not null comment 'seed for new tokens by this consumer', - - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table token ( - consumer_key varchar(255) not null comment 'unique identifier, root URL' references consumer (consumer_key), - tok char(32) not null comment 'identifying value', - secret char(32) not null comment 'secret value', - type tinyint not null default 0 comment 'request or access', - state tinyint default 0 comment 'for requests, 0 = initial, 1 = authorized, 2 = used', - verifier varchar(255) comment 'verifier string for OAuth 1.0a', - verified_callback varchar(255) comment 'verified callback URL for OAuth 1.0a', - - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (consumer_key, tok) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table nonce ( - consumer_key varchar(255) not null comment 'unique identifier, root URL', - tok char(32) null comment 'buggy old value, ignored', - nonce char(32) not null comment 'nonce', - ts datetime not null comment 'timestamp sent', - - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (consumer_key, ts, nonce) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table oauth_application ( - id integer auto_increment primary key comment 'unique identifier', - owner integer not null comment 'owner of the application' references profile (id), - consumer_key varchar(255) not null comment 'application consumer key' references consumer (consumer_key), - name varchar(255) not null unique key comment 'name of the application', - description varchar(255) comment 'description of the application', - icon varchar(255) not null comment 'application icon', - source_url varchar(255) comment 'application homepage - used for source link', - organization varchar(255) comment 'name of the organization running the application', - homepage varchar(255) comment 'homepage for the organization', - callback_url varchar(255) comment 'url to redirect to after authentication', - type tinyint default 0 comment 'type of app, 1 = browser, 2 = desktop', - access_type tinyint default 0 comment 'default access type, bit 1 = read, bit 2 = write', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table oauth_application_user ( - profile_id integer not null comment 'user of the application' references profile (id), - application_id integer not null comment 'id of the application' references oauth_application (id), - access_type tinyint default 0 comment 'access type, bit 1 = read, bit 2 = write', - token varchar(255) comment 'request or access token', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - constraint primary key (profile_id, application_id) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table oauth_token_association ( - profile_id integer not null comment 'user of the application' references profile (id), - application_id integer not null comment 'id of the application' references oauth_application (id), - token varchar(255) comment 'request or access token', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - constraint primary key (profile_id, application_id, token) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -/* These are used by JanRain OpenID library */ - -create table oid_associations ( - server_url BLOB, - handle VARCHAR(255) character set latin1, - secret BLOB, - issued INTEGER, - lifetime INTEGER, - assoc_type VARCHAR(64), - PRIMARY KEY (server_url(255), handle) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table oid_nonces ( - server_url VARCHAR(2047), - timestamp INTEGER, - salt CHAR(40), - UNIQUE (server_url(255), timestamp, salt) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table confirm_address ( - code varchar(32) not null primary key comment 'good random code', - user_id integer not null comment 'user who requested confirmation' references user (id), - address varchar(255) not null comment 'address (email, xmpp, SMS, etc.)', - address_extra varchar(255) not null comment 'carrier ID, for SMS', - address_type varchar(8) not null comment 'address type ("email", "xmpp", "sms")', - claimed datetime comment 'date this was claimed for queueing', - sent datetime comment 'date this was sent for queueing', - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table remember_me ( - code varchar(32) not null primary key comment 'good random code', - user_id integer not null comment 'user who is logged in' references user (id), - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table queue_item ( - id integer auto_increment primary key comment 'unique identifier', - frame blob not null comment 'data: object reference or opaque string', - transport varchar(8) not null comment 'queue for what? "email", "xmpp", "sms", "irc", ...', - created datetime not null comment 'date this record was created', - claimed datetime comment 'date this item was claimed', - - index queue_item_created_idx (created) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -/* Hash tags */ -create table notice_tag ( - tag varchar( 64 ) not null comment 'hash tag associated with this notice', - notice_id integer not null comment 'notice tagged' references notice (id), - created datetime not null comment 'date this record was created', - - constraint primary key (tag, notice_id), - index notice_tag_created_idx (created), - index notice_tag_notice_id_idx (notice_id), - - -- For sorting tag-filtered public timeline - index notice_tag_tag_created_notice_id_idx (tag, created, notice_id) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -/* Synching with foreign services */ - -create table foreign_service ( - id int not null primary key comment 'numeric key for service', - name varchar(32) not null unique key comment 'name of the service', - description varchar(255) comment 'description', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table foreign_user ( - id bigint not null comment 'unique numeric key on foreign service', - service int not null comment 'foreign key to service' references foreign_service(id), - uri varchar(255) not null unique key comment 'identifying URI', - nickname varchar(255) comment 'nickname on foreign service', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (id, service) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table foreign_link ( - user_id int comment 'link to user on this system, if exists' references user (id), - foreign_id bigint unsigned comment 'link to user on foreign service, if exists' references foreign_user(id), - service int not null comment 'foreign key to service' references foreign_service(id), - credentials varchar(255) comment 'authc credentials, typically a password', - noticesync tinyint not null default 1 comment 'notice synchronization, bit 1 = sync outgoing, bit 2 = sync incoming, bit 3 = filter local replies', - friendsync tinyint not null default 2 comment 'friend synchronization, bit 1 = sync outgoing, bit 2 = sync incoming', - profilesync tinyint not null default 1 comment 'profile synchronization, bit 1 = sync outgoing, bit 2 = sync incoming', - last_noticesync datetime default null comment 'last time notices were imported', - last_friendsync datetime default null comment 'last time friends were imported', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (user_id, foreign_id, service), - index foreign_user_user_id_idx (user_id) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table foreign_subscription ( - service int not null comment 'service where relationship happens' references foreign_service(id), - subscriber int not null comment 'subscriber on foreign service' references foreign_user (id), - subscribed int not null comment 'subscribed user' references foreign_user (id), - created datetime not null comment 'date this record was created', - - constraint primary key (service, subscriber, subscribed), - index foreign_subscription_subscriber_idx (subscriber), - index foreign_subscription_subscribed_idx (subscribed) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table invitation ( - code varchar(32) not null primary key comment 'random code for an invitation', - user_id int not null comment 'who sent the invitation' references user (id), - address varchar(255) not null comment 'invitation sent to', - address_type varchar(8) not null comment 'address type ("email", "xmpp", "sms")', - created datetime not null comment 'date this record was created', - - index invitation_address_idx (address, address_type), - index invitation_user_id_idx (user_id) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table message ( - id integer auto_increment primary key comment 'unique identifier', - uri varchar(255) unique key comment 'universally unique identifier', - from_profile integer not null comment 'who the message is from' references profile (id), - to_profile integer not null comment 'who the message is to' references profile (id), - content text comment 'message content', - rendered text comment 'HTML version of the content', - url varchar(255) comment 'URL of any attachment (image, video, bookmark, whatever)', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - source varchar(32) comment 'source of comment, like "web", "im", or "clientname"', - - index message_from_idx (from_profile), - index message_to_idx (to_profile), - index message_created_idx (created) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci; - -create table notice_inbox ( - user_id integer not null comment 'user receiving the message' references user (id), - notice_id integer not null comment 'notice received' references notice (id), - created datetime not null comment 'date the notice was created', - source tinyint default 1 comment 'reason it is in the inbox, 1=subscription', - - constraint primary key (user_id, notice_id), - index notice_inbox_notice_id_idx (notice_id) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table profile_tag ( - tagger integer not null comment 'user making the tag' references profile (id), - tagged integer not null comment 'profile tagged' references profile (id), - tag varchar(64) not null comment 'hash tag associated with this notice', - modified timestamp comment 'date the tag was added', - - constraint primary key (tagger, tagged, tag), - index profile_tag_modified_idx (modified), - index profile_tag_tagger_tag_idx (tagger, tag), - index profile_tag_tagged_idx (tagged) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -/* people tag metadata */ -create table profile_list ( - id integer auto_increment unique key comment 'unique identifier', - tagger integer not null comment 'user making the tag' references profile (id), - tag varchar(64) not null comment 'hash tag', - description text comment 'description for the tag', - private tinyint(1) default 0 comment 'is this list private', - - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - uri varchar(255) unique key comment 'universal identifier', - mainpage varchar(255) comment 'page for tag info info to link to', - tagged_count smallint not null default 0 comment 'number of people tagged', - subscriber_count smallint not null default 0 comment 'number of people subscribing', - - constraint primary key (tagger, tag), - index profile_list_tag_idx (tag), - index profile_list_tagged_count_idx (tagged_count), - index profile_list_modified_idx (modified), - index profile_list_subscriber_count_idx (subscriber_count) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table profile_tag_inbox ( - profile_tag_id integer not null comment 'peopletag receiving the message' references profile_tag (id), - notice_id integer not null comment 'notice received' references notice (id), - created datetime not null comment 'date the notice was created', - - constraint primary key (profile_tag_id, notice_id), - index profile_tag_inbox_created_idx (created), - index profile_tag_inbox_notice_id_idx (notice_id) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table profile_tag_subscription ( - profile_tag_id integer not null comment 'foreign key to profile_tag' references profile_list (id), - - profile_id integer not null comment 'foreign key to profile table' references profile (id), - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (profile_tag_id, profile_id), - index profile_tag_subscription_profile_id_idx (profile_id), - index profile_tag_subscription_created_idx (created) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table profile_block ( - blocker integer not null comment 'user making the block' references user (id), - blocked integer not null comment 'profile that is blocked' references profile (id), - modified timestamp comment 'date of blocking', - - constraint primary key (blocker, blocked) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table user_group ( - id integer auto_increment primary key comment 'unique identifier', - - nickname varchar(64) comment 'nickname for addressing', - fullname varchar(255) comment 'display name', - homepage varchar(255) comment 'URL, cached so we dont regenerate', - description text comment 'group description', - location varchar(255) comment 'related physical location, if any', - - original_logo varchar(255) comment 'original size logo', - homepage_logo varchar(255) comment 'homepage (profile) size logo', - stream_logo varchar(255) comment 'stream-sized logo', - mini_logo varchar(255) comment 'mini logo', - design_id integer comment 'id of a design' references design(id), - - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - uri varchar(255) unique key comment 'universal identifier', - mainpage varchar(255) comment 'page for group info to link to', - - index user_group_nickname_idx (nickname) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci; - -create table group_member ( - group_id integer not null comment 'foreign key to user_group' references user_group (id), - profile_id integer not null comment 'foreign key to profile table' references profile (id), - is_admin boolean default false comment 'is this user an admin?', - - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (group_id, profile_id), - index group_member_profile_id_idx (profile_id), - index group_member_created_idx (created), - - -- To pull up a list of someone's groups in order joined - index group_member_profile_id_created_idx (profile_id, created) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table related_group ( - group_id integer not null comment 'foreign key to user_group' references user_group (id), - related_group_id integer not null comment 'foreign key to user_group' references user_group (id), - - created datetime not null comment 'date this record was created', - - constraint primary key (group_id, related_group_id) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table group_inbox ( - group_id integer not null comment 'group receiving the message' references user_group (id), - notice_id integer not null comment 'notice received' references notice (id), - created datetime not null comment 'date the notice was created', - - constraint primary key (group_id, notice_id), - index group_inbox_created_idx (created), - index group_inbox_notice_id_idx (notice_id), - - -- Needed for sorting group messages by timestamp - index group_inbox_group_id_created_notice_id_idx (group_id, created, notice_id) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table file ( - - id integer primary key auto_increment, - url varchar(255) comment 'destination URL after following redirections', - mimetype varchar(50) comment 'mime type of resource', - size integer comment 'size of resource when available', - title varchar(255) comment 'title of resource when available', - date integer(11) comment 'date of resource according to http query', - protected integer(1) comment 'true when URL is private (needs login)', - filename varchar(255) comment 'if a local file, name of the file', - - modified timestamp comment 'date this record was modified', - - unique(url) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci; - -create table file_oembed ( - file_id integer primary key comment 'oEmbed for that URL/file' references file (id), - version varchar(20) comment 'oEmbed spec. version', - type varchar(20) comment 'oEmbed type: photo, video, link, rich', - mimetype varchar(50) comment 'mime type of resource', - provider varchar(50) comment 'name of this oEmbed provider', - provider_url varchar(255) comment 'URL of this oEmbed provider', - width integer comment 'width of oEmbed resource when available', - height integer comment 'height of oEmbed resource when available', - html text comment 'html representation of this oEmbed resource when applicable', - title varchar(255) comment 'title of oEmbed resource when available', - author_name varchar(50) comment 'author name for this oEmbed resource', - author_url varchar(255) comment 'author URL for this oEmbed resource', - url varchar(255) comment 'URL for this oEmbed resource when applicable (photo, link)', - modified timestamp comment 'date this record was modified' - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci; - -create table file_redirection ( - - url varchar(255) primary key comment 'short URL (or any other kind of redirect) for file (id)', - file_id integer comment 'short URL for what URL/file' references file (id), - redirections integer comment 'redirect count', - httpcode integer comment 'HTTP status code (20x, 30x, etc.)', - modified timestamp comment 'date this record was modified' - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table file_thumbnail ( - - file_id integer primary key comment 'thumbnail for what URL/file' references file (id), - url varchar(255) comment 'URL of thumbnail', - width integer comment 'width of thumbnail', - height integer comment 'height of thumbnail', - modified timestamp comment 'date this record was modified', - - unique(url) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table file_to_post ( - - file_id integer comment 'id of URL/file' references file (id), - post_id integer comment 'id of the notice it belongs to' references notice (id), - modified timestamp comment 'date this record was modified', - - constraint primary key (file_id, post_id), - index post_id_idx (post_id) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table design ( - id integer primary key auto_increment comment 'design ID', - backgroundcolor integer comment 'main background color', - contentcolor integer comment 'content area background color', - sidebarcolor integer comment 'sidebar background color', - textcolor integer comment 'text color', - linkcolor integer comment 'link color', - backgroundimage varchar(255) comment 'background image, if any', - disposition tinyint default 1 comment 'bit 1 = hide background image, bit 2 = display background image, bit 4 = tile background image' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table group_block ( - group_id integer not null comment 'group profile is blocked from' references user_group (id), - blocked integer not null comment 'profile that is blocked' references profile (id), - blocker integer not null comment 'user making the block' references user (id), - modified timestamp comment 'date of blocking', - - constraint primary key (group_id, blocked) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table group_alias ( - - alias varchar(64) primary key comment 'additional nickname for the group', - group_id integer not null comment 'group profile is blocked from' references user_group (id), - modified timestamp comment 'date alias was created', - - index group_alias_group_id_idx (group_id) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table session ( - - id varchar(32) primary key comment 'session ID', - session_data text comment 'session data', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - index session_modified_idx (modified) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table deleted_notice ( - - id integer primary key comment 'identity of notice', - profile_id integer not null comment 'author of the notice', - uri varchar(255) unique key comment 'universally unique identifier, usually a tag URI', - created datetime not null comment 'date the notice record was created', - deleted datetime not null comment 'date the notice record was created', - - index deleted_notice_profile_id_idx (profile_id) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table config ( - - section varchar(32) comment 'configuration section', - setting varchar(32) comment 'configuration setting', - value varchar(255) comment 'configuration value', - - constraint primary key (section, setting) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table profile_role ( - - profile_id integer not null comment 'account having the role' references profile (id), - role varchar(32) not null comment 'string representing the role', - created datetime not null comment 'date the role was granted', - - constraint primary key (profile_id, role), - index profile_role_role_created_profile_id_idx (role, created, profile_id) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table location_namespace ( - - id integer primary key comment 'identity for this namespace', - description varchar(255) comment 'description of the namespace', - created datetime not null comment 'date the record was created', - modified timestamp comment 'date this record was modified' - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table login_token ( - user_id integer not null comment 'user owning this token' references user (id), - token char(32) not null comment 'token useable for logging in', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (user_id) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table user_location_prefs ( - user_id integer not null comment 'user who has the preference' references user (id), - share_location tinyint default 1 comment 'Whether to share location data', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (user_id) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table inbox ( - - user_id integer not null comment 'user receiving the notice' references user (id), - notice_ids blob comment 'packed list of notice ids', - - constraint primary key (user_id) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table user_im_prefs ( - user_id integer not null comment 'user' references user (id), - screenname varchar(255) not null comment 'screenname on this service', - transport varchar(255) not null comment 'transport (ex xmpp, aim)', - notify tinyint(1) not null default 0 comment 'Notify when a new notice is sent', - replies tinyint(1) not null default 0 comment 'Send replies from people not subscribed to', - microid tinyint(1) not null default 1 comment 'Publish a MicroID', - updatefrompresence tinyint(1) not null default 0 comment 'Send replies from people not subscribed to.', - created timestamp not null DEFAULT CURRENT_TIMESTAMP comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (user_id, transport), - constraint unique key `transport_screenname_key` ( `transport` , `screenname` ) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table conversation ( - id integer auto_increment primary key comment 'unique identifier', - uri varchar(225) unique comment 'URI of the conversation', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table local_group ( - - group_id integer primary key comment 'group represented' references user_group (id), - nickname varchar(64) unique key comment 'group represented', - - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table user_urlshortener_prefs ( - - user_id integer not null comment 'user' references user (id), - urlshorteningservice varchar(50) default 'ur1.ca' comment 'service to use for auto-shortening URLs', - maxurllength integer not null comment 'urls greater than this length will be shortened, 0 = always, null = never', - maxnoticelength integer not null comment 'notices with content greater than this value will have all urls shortened, 0 = always, null = never', - - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (user_id) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; diff --git a/db/statusnet_pg.sql b/db/statusnet_pg.sql deleted file mode 100644 index fe0758de89..0000000000 --- a/db/statusnet_pg.sql +++ /dev/null @@ -1,649 +0,0 @@ -/* local and remote users have profiles */ -create sequence profile_seq; -create table profile ( - id bigint default nextval('profile_seq') primary key /* comment 'unique identifier' */, - nickname varchar(64) not null /* comment 'nickname or username' */, - fullname varchar(255) /* comment 'display name' */, - profileurl varchar(255) /* comment 'URL, cached so we dont regenerate' */, - homepage varchar(255) /* comment 'identifying URL' */, - bio varchar(140) /* comment 'descriptive biography' */, - location varchar(255) /* comment 'physical location' */, - lat decimal(10,7) /* comment 'latitude'*/ , - lon decimal(10,7) /* comment 'longitude'*/ , - location_id integer /* comment 'location id if possible'*/ , - location_ns integer /* comment 'namespace for location'*/ , - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */, - - textsearch tsvector -); -create index profile_nickname_idx on profile using btree(nickname); - -create table avatar ( - profile_id integer not null /* comment 'foreign key to profile table' */ references profile (id) , - original integer default 0 /* comment 'uploaded by user or generated?' */, - width integer not null /* comment 'image width' */, - height integer not null /* comment 'image height' */, - mediatype varchar(32) not null /* comment 'file type' */, - filename varchar(255) null /* comment 'local filename, if local' */, - url varchar(255) unique /* comment 'avatar location' */, - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */, - - primary key(profile_id, width, height) -); -create index avatar_profile_id_idx on avatar using btree(profile_id); - -create sequence sms_carrier_seq; -create table sms_carrier ( - id bigint default nextval('sms_carrier_seq') primary key /* comment 'primary key for SMS carrier' */, - name varchar(64) unique /* comment 'name of the carrier' */, - email_pattern varchar(255) not null /* comment 'sprintf pattern for making an email address from a phone number' */, - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified ' */ -); - -create sequence design_seq; -create table design ( - id bigint default nextval('design_seq') /* comment 'design ID'*/, - backgroundcolor integer /* comment 'main background color'*/ , - contentcolor integer /*comment 'content area background color'*/ , - sidebarcolor integer /*comment 'sidebar background color'*/ , - textcolor integer /*comment 'text color'*/ , - linkcolor integer /*comment 'link color'*/, - backgroundimage varchar(255) /*comment 'background image, if any'*/, - disposition int default 1 /*comment 'bit 1 = hide background image, bit 2 = display background image, bit 4 = tile background image'*/, - primary key (id) -); - -/* local users */ - -create table "user" ( - id integer primary key /* comment 'foreign key to profile table' */ references profile (id) , - nickname varchar(64) unique /* comment 'nickname or username, duped in profile' */, - password varchar(255) /* comment 'salted password, can be null for OpenID users' */, - email varchar(255) unique /* comment 'email address for password recovery etc.' */, - incomingemail varchar(255) unique /* comment 'email address for post-by-email' */, - emailnotifysub integer default 1 /* comment 'Notify by email of subscriptions' */, - emailnotifyfav integer default 1 /* comment 'Notify by email of favorites' */, - emailnotifynudge integer default 1 /* comment 'Notify by email of nudges' */, - emailnotifymsg integer default 1 /* comment 'Notify by email of direct messages' */, - emailnotifyattn integer default 1 /* command 'Notify by email of @-replies' */, - emailmicroid integer default 1 /* comment 'whether to publish email microid' */, - language varchar(50) /* comment 'preferred language' */, - timezone varchar(50) /* comment 'timezone' */, - emailpost integer default 1 /* comment 'Post by email' */, - jabber varchar(255) unique /* comment 'jabber ID for notices' */, - jabbernotify integer default 0 /* comment 'whether to send notices to jabber' */, - jabberreplies integer default 0 /* comment 'whether to send notices to jabber on replies' */, - jabbermicroid integer default 1 /* comment 'whether to publish xmpp microid' */, - updatefrompresence integer default 0 /* comment 'whether to record updates from Jabber presence notices' */, - sms varchar(64) unique /* comment 'sms phone number' */, - carrier integer /* comment 'foreign key to sms_carrier' */ references sms_carrier (id) , - smsnotify integer default 0 /* comment 'whether to send notices to SMS' */, - smsreplies integer default 0 /* comment 'whether to send notices to SMS on replies' */, - smsemail varchar(255) /* comment 'built from sms and carrier' */, - uri varchar(255) unique /* comment 'universally unique identifier, usually a tag URI' */, - autosubscribe integer default 0 /* comment 'automatically subscribe to users who subscribe to us' */, - urlshorteningservice varchar(50) default 'ur1.ca' /* comment 'service to use for auto-shortening URLs' */, - inboxed integer default 0 /* comment 'has an inbox been created for this user?' */, - design_id integer /* comment 'id of a design' */references design(id), - viewdesigns integer default 1 /* comment 'whether to view user-provided designs'*/, - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */ - -); -create index user_smsemail_idx on "user" using btree(smsemail); - -/* remote people */ - -create table remote_profile ( - id integer primary key /* comment 'foreign key to profile table' */ references profile (id) , - uri varchar(255) unique /* comment 'universally unique identifier, usually a tag URI' */, - postnoticeurl varchar(255) /* comment 'URL we use for posting notices' */, - updateprofileurl varchar(255) /* comment 'URL we use for updates to this profile' */, - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */ -); - -create table subscription ( - subscriber integer not null /* comment 'profile listening' */, - subscribed integer not null /* comment 'profile being listened to' */, - jabber integer default 1 /* comment 'deliver jabber messages' */, - sms integer default 1 /* comment 'deliver sms messages' */, - token varchar(255) /* comment 'authorization token' */, - secret varchar(255) /* comment 'token secret' */, - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */, - - primary key (subscriber, subscribed) -); -create index subscription_subscriber_idx on subscription using btree(subscriber,created); -create index subscription_subscribed_idx on subscription using btree(subscribed,created); - -create sequence notice_seq; -create table notice ( - - id bigint default nextval('notice_seq') primary key /* comment 'unique identifier' */, - profile_id integer not null /* comment 'who made the update' */ references profile (id) , - uri varchar(255) unique /* comment 'universally unique identifier, usually a tag URI' */, - content varchar(140) /* comment 'update content' */, - rendered text /* comment 'HTML version of the content' */, - url varchar(255) /* comment 'URL of any attachment (image, video, bookmark, whatever)' */, - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */, - reply_to integer /* comment 'notice replied to (usually a guess)' */ references notice (id) , - is_local integer default 0 /* comment 'notice was generated by a user' */, - source varchar(32) /* comment 'source of comment, like "web", "im", or "clientname"' */, - conversation integer /*id of root notice in this conversation' */ references notice (id), - lat decimal(10,7) /* comment 'latitude'*/ , - lon decimal(10,7) /* comment 'longitude'*/ , - location_id integer /* comment 'location id if possible'*/ , - location_ns integer /* comment 'namespace for location'*/ , - repeat_of integer /* comment 'notice this is a repeat of' */ references notice (id) - -/* FULLTEXT(content) */ -); - -create index notice_profile_id_idx on notice using btree(profile_id,created,id); -create index notice_created_idx on notice using btree(created); - -create table notice_source ( - code varchar(32) primary key not null /* comment 'source code' */, - name varchar(255) not null /* comment 'name of the source' */, - url varchar(255) not null /* comment 'url to link to' */, - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */ -); - -create table reply ( - - notice_id integer not null /* comment 'notice that is the reply' */ references notice (id) , - profile_id integer not null /* comment 'profile replied to' */ references profile (id) , - modified timestamp /* comment 'date this record was modified' */, - replied_id integer /* comment 'notice replied to (not used, see notice.reply_to)' */, - - primary key (notice_id, profile_id) - -); -create index reply_notice_id_idx on reply using btree(notice_id); -create index reply_profile_id_idx on reply using btree(profile_id); -create index reply_replied_id_idx on reply using btree(replied_id); - -create table fave ( - - notice_id integer not null /* comment 'notice that is the favorite' */ references notice (id), - user_id integer not null /* comment 'user who likes this notice' */ references "user" (id) , - modified timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was modified' */, - primary key (notice_id, user_id) - -); -create index fave_notice_id_idx on fave using btree(notice_id); -create index fave_user_id_idx on fave using btree(user_id,modified); -create index fave_modified_idx on fave using btree(modified); - -/* tables for OAuth */ - -create table consumer ( - consumer_key varchar(255) primary key /* comment 'unique identifier, root URL' */, - consumer_secret varchar(255) not null /* comment 'secret value', */, - seed char(32) not null /* comment 'seed for new tokens by this consumer' */, - - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */ -); - -create table token ( - consumer_key varchar(255) not null /* comment 'unique identifier, root URL' */ references consumer (consumer_key), - tok char(32) not null /* comment 'identifying value' */, - secret char(32) not null /* comment 'secret value' */, - type integer not null default 0 /* comment 'request or access' */, - state integer default 0 /* comment 'for requests 0 = initial, 1 = authorized, 2 = used' */, - - verifier varchar(255) /*comment 'verifier string for OAuth 1.0a'*/, - verified_callback varchar(255) /*comment 'verified callback URL for OAuth 1.0a'*/, - - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */, - - primary key (consumer_key, tok) -); - -create table nonce ( - consumer_key varchar(255) not null /* comment 'unique identifier, root URL' */, - tok char(32) /* comment 'buggy old value, ignored' */, - nonce char(32) null /* comment 'buggy old value, ignored */, - ts integer not null /* comment 'timestamp sent' values are epoch, and only used internally */, - - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */, - - primary key (consumer_key, ts, nonce) -); - -create sequence oauth_application_seq; -create table oauth_application ( - id bigint default nextval('oauth_application_seq') primary key /* comment 'unique identifier' */, - owner integer not null /* comment 'owner of the application' */ references profile (id), - consumer_key varchar(255) not null /* comment 'application consumer key' */ references consumer (consumer_key), - name varchar(255) unique not null /* comment 'name of the application' */, - description varchar(255) /* comment 'description of the application' */, - icon varchar(255) not null /* comment 'application icon' */, - source_url varchar(255) /* comment 'application homepage - used for source link' */, - organization varchar(255) /* comment 'name of the organization running the application' */, - homepage varchar(255) /* comment 'homepage for the organization' */, - callback_url varchar(255) /* comment 'url to redirect to after authentication' */, - "type" integer default 0 /* comment 'type of app, 1 = browser, 2 = desktop' */, - access_type integer default 0 /* comment 'default access type, bit 1 = read, bit 2 = write' */, - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */ -); - -create table oauth_application_user ( - profile_id integer not null /* 'user of the application' */ references profile (id), - application_id integer not null /* 'id of the application' */ references oauth_application (id), - access_type integer default 0 /* 'access type, bit 1 = read, bit 2 = write' */, - token varchar(255) /* 'request or access token' */, - created timestamp not null default CURRENT_TIMESTAMP /* 'date this record was created' */, - modified timestamp /* 'date this record was modified' */, - primary key (profile_id, application_id) -); - -/* These are used by JanRain OpenID library */ - -create table oid_associations ( - server_url varchar(2047), - handle varchar(255), - secret bytea, - issued integer, - lifetime integer, - assoc_type varchar(64), - primary key (server_url, handle) -); - -create table oid_nonces ( - server_url varchar(2047), - "timestamp" integer, - salt character(40), - unique (server_url, "timestamp", salt) -); - -create table confirm_address ( - code varchar(32) not null primary key /* comment 'good random code' */, - user_id integer not null /* comment 'user who requested confirmation' */ references "user" (id), - address varchar(255) not null /* comment 'address (email, Jabber, SMS, etc.)' */, - address_extra varchar(255) not null default '' /* comment 'carrier ID, for SMS' */, - address_type varchar(8) not null /* comment 'address type ("email", "jabber", "sms")' */, - claimed timestamp /* comment 'date this was claimed for queueing' */, - sent timestamp default CURRENT_TIMESTAMP /* comment 'date this was sent for queueing' */, - modified timestamp /* comment 'date this record was modified' */ -); - -create table remember_me ( - code varchar(32) not null primary key /* comment 'good random code' */, - user_id integer not null /* comment 'user who is logged in' */ references "user" (id), - modified timestamp /* comment 'date this record was modified' */ -); - -create table queue_item ( - id serial /* comment 'unique identifier'*/, - frame bytea not null /* comment 'data: object reference or opaque string'*/, - transport varchar(8) not null /*comment 'queue for what? "email", "jabber", "sms", "irc", ...'*/, - created timestamp not null default CURRENT_TIMESTAMP /*comment 'date this record was created'*/, - claimed timestamp /*comment 'date this item was claimed'*/, - PRIMARY KEY (id) -); -create index queue_item_created_idx on queue_item using btree(created); - -/* Hash tags */ -create table notice_tag ( - tag varchar( 64 ) not null /* comment 'hash tag associated with this notice' */, - notice_id integer not null /* comment 'notice tagged' */ references notice (id) , - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - - primary key (tag, notice_id) -); -create index notice_tag_created_idx on notice_tag using btree(created); - -/* Synching with foreign services */ - -create table foreign_service ( - id int not null primary key /* comment 'numeric key for service' */, - name varchar(32) not null unique /* comment 'name of the service' */, - description varchar(255) /* comment 'description' */, - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */ -); - -create table foreign_user ( - id int not null unique /* comment 'unique numeric key on foreign service' */, - service int not null /* comment 'foreign key to service' */ references foreign_service(id) , - uri varchar(255) not null unique /* comment 'identifying URI' */, - nickname varchar(255) /* comment 'nickname on foreign service' */, - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */, - - primary key (id, service) -); - -create table foreign_link ( - user_id int /* comment 'link to user on this system, if exists' */ references "user" (id), - foreign_id int /* comment 'link' */ references foreign_user (id), - service int not null /* comment 'foreign key to service' */ references foreign_service (id), - credentials varchar(255) /* comment 'authc credentials, typically a password' */, - noticesync int not null default 1 /* comment 'notice synchronisation, bit 1 = sync outgoing, bit 2 = sync incoming, bit 3 = filter local replies' */, - friendsync int not null default 2 /* comment 'friend synchronisation, bit 1 = sync outgoing, bit 2 = sync incoming */, - profilesync int not null default 1 /* comment 'profile synchronization, bit 1 = sync outgoing, bit 2 = sync incoming' */, - last_noticesync timestamp default null /* comment 'last time notices were imported' */, - last_friendsync timestamp default null /* comment 'last time friends were imported' */, - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */, - - primary key (user_id,foreign_id,service) -); -create index foreign_user_user_id_idx on foreign_link using btree(user_id); - -create table foreign_subscription ( - service int not null /* comment 'service where relationship happens' */ references foreign_service(id) , - subscriber int not null /* comment 'subscriber on foreign service' */ , - subscribed int not null /* comment 'subscribed user' */ , - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - - primary key (service, subscriber, subscribed) -); -create index foreign_subscription_subscriber_idx on foreign_subscription using btree(subscriber); -create index foreign_subscription_subscribed_idx on foreign_subscription using btree(subscribed); - -create table invitation ( - code varchar(32) not null primary key /* comment 'random code for an invitation' */, - user_id int not null /* comment 'who sent the invitation' */ references "user" (id), - address varchar(255) not null /* comment 'invitation sent to' */, - address_type varchar(8) not null /* comment 'address type ("email", "jabber", "sms") '*/, - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */ - -); -create index invitation_address_idx on invitation using btree(address,address_type); -create index invitation_user_id_idx on invitation using btree(user_id); - -create sequence message_seq; -create table message ( - - id bigint default nextval('message_seq') primary key /* comment 'unique identifier' */, - uri varchar(255) unique /* comment 'universally unique identifier' */, - from_profile integer not null /* comment 'who the message is from' */ references profile (id), - to_profile integer not null /* comment 'who the message is to' */ references profile (id), - content varchar(140) /* comment 'message content' */, - rendered text /* comment 'HTML version of the content' */, - url varchar(255) /* comment 'URL of any attachment (image, video, bookmark, whatever)' */, - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */, - source varchar(32) /* comment 'source of comment, like "web", "im", or "clientname"' */ - -); -create index message_from_idx on message using btree(from_profile); -create index message_to_idx on message using btree(to_profile); -create index message_created_idx on message using btree(created); - -create table notice_inbox ( - - user_id integer not null /* comment 'user receiving the message' */ references "user" (id), - notice_id integer not null /* comment 'notice received' */ references notice (id), - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date the notice was created' */, - source integer default 1 /* comment 'reason it is in the inbox: 1=subscription' */, - - primary key (user_id, notice_id) -); -create index notice_inbox_notice_id_idx on notice_inbox using btree(notice_id); - -create table profile_tag ( - tagger integer not null /* comment 'user making the tag' */ references "user" (id), - tagged integer not null /* comment 'profile tagged' */ references profile (id), - tag varchar(64) not null /* comment 'hash tag associated with this notice' */, - modified timestamp /* comment 'date the tag was added' */, - - primary key (tagger, tagged, tag) -); -create index profile_tag_modified_idx on profile_tag using btree(modified); -create index profile_tag_tagger_tag_idx on profile_tag using btree(tagger,tag); - -create table profile_block ( - - blocker integer not null /* comment 'user making the block' */ references "user" (id), - blocked integer not null /* comment 'profile that is blocked' */ references profile (id), - modified timestamp /* comment 'date of blocking' */, - - primary key (blocker, blocked) - -); - -create sequence user_group_seq; -create table user_group ( - - id bigint default nextval('user_group_seq') primary key /* comment 'unique identifier' */, - - nickname varchar(64) unique /* comment 'nickname for addressing' */, - fullname varchar(255) /* comment 'display name' */, - homepage varchar(255) /* comment 'URL, cached so we dont regenerate' */, - description varchar(140) /* comment 'descriptive biography' */, - location varchar(255) /* comment 'related physical location, if any' */, - - original_logo varchar(255) /* comment 'original size logo' */, - homepage_logo varchar(255) /* comment 'homepage (profile) size logo' */, - stream_logo varchar(255) /* comment 'stream-sized logo' */, - mini_logo varchar(255) /* comment 'mini logo' */, - design_id integer /*comment 'id of a design' */ references design(id), - - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */ - -); -create index user_group_nickname_idx on user_group using btree(nickname); - -create table group_member ( - - group_id integer not null /* comment 'foreign key to user_group' */ references user_group (id), - profile_id integer not null /* comment 'foreign key to profile table' */ references profile (id), - is_admin integer default 0 /* comment 'is this user an admin?' */, - - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */, - - primary key (group_id, profile_id) -); - -create table related_group ( - - group_id integer not null /* comment 'foreign key to user_group' */ references user_group (id) , - related_group_id integer not null /* comment 'foreign key to user_group' */ references user_group (id), - - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */, - - primary key (group_id, related_group_id) - -); - -create table group_inbox ( - group_id integer not null /* comment 'group receiving the message' references user_group (id) */, - notice_id integer not null /* comment 'notice received' references notice (id) */, - created timestamp not null default CURRENT_TIMESTAMP /* comment 'date the notice was created' */, - primary key (group_id, notice_id) -); -create index group_inbox_created_idx on group_inbox using btree(created); - -/*attachments and URLs stuff */ -create sequence file_seq; -create table file ( - id bigint default nextval('file_seq') primary key /* comment 'unique identifier' */, - url varchar(255) unique, - mimetype varchar(50), - size integer, - title varchar(255), - date integer, - protected integer, - filename text /* comment 'if a local file, name of the file' */, - modified timestamp default CURRENT_TIMESTAMP /* comment 'date this record was modified'*/ -); - -create sequence file_oembed_seq; -create table file_oembed ( - file_id bigint default nextval('file_oembed_seq') primary key /* comment 'unique identifier' */, - version varchar(20), - type varchar(20), - mimetype varchar(50), - provider varchar(50), - provider_url varchar(255), - width integer, - height integer, - html text, - title varchar(255), - author_name varchar(50), - author_url varchar(255), - url varchar(255) -); - -create sequence file_redirection_seq; -create table file_redirection ( - url varchar(255) primary key, - file_id bigint, - redirections integer, - httpcode integer -); - -create sequence file_thumbnail_seq; -create table file_thumbnail ( - file_id bigint primary key, - url varchar(255) unique, - width integer, - height integer -); - -create sequence file_to_post_seq; -create table file_to_post ( - file_id bigint, - post_id bigint, - - primary key (file_id, post_id) -); - -create table group_block ( - group_id integer not null /* comment 'group profile is blocked from' */ references user_group (id), - blocked integer not null /* comment 'profile that is blocked' */references profile (id), - blocker integer not null /* comment 'user making the block'*/ references "user" (id), - modified timestamp /* comment 'date of blocking'*/ , - - primary key (group_id, blocked) -); - -create table group_alias ( - - alias varchar(64) /* comment 'additional nickname for the group'*/ , - group_id integer not null /* comment 'group profile is blocked from'*/ references user_group (id), - modified timestamp /* comment 'date alias was created'*/, - primary key (alias) - -); -create index group_alias_group_id_idx on group_alias (group_id); - -create table session ( - - id varchar(32) primary key /* comment 'session ID'*/, - session_data text /* comment 'session data'*/, - created timestamp not null DEFAULT CURRENT_TIMESTAMP /* comment 'date this record was created'*/, - modified integer DEFAULT extract(epoch from CURRENT_TIMESTAMP) /* comment 'date this record was modified'*/ -); - -create index session_modified_idx on session (modified); - -create table deleted_notice ( - - id integer primary key /* comment 'identity of notice'*/ , - profile_id integer /* not null comment 'author of the notice'*/, - uri varchar(255) unique /* comment 'universally unique identifier, usually a tag URI'*/, - created timestamp not null /* comment 'date the notice record was created'*/ , - deleted timestamp not null DEFAULT CURRENT_TIMESTAMP /* comment 'date the notice record was created'*/ -); - -CREATE index deleted_notice_profile_id_idx on deleted_notice (profile_id); - -/* Textsearch stuff */ - -create index textsearch_idx on profile using gist(textsearch); -create index noticecontent_idx on notice using gist(to_tsvector('english',content)); -create trigger textsearchupdate before insert or update on profile for each row -execute procedure tsvector_update_trigger(textsearch, 'pg_catalog.english', nickname, fullname, location, bio, homepage); - -create table config ( - - section varchar(32) /* comment 'configuration section'*/, - setting varchar(32) /* comment 'configuration setting'*/, - value varchar(255) /* comment 'configuration value'*/, - - primary key (section, setting) - -); - -create table profile_role ( - - profile_id integer not null /* comment 'account having the role'*/ references profile (id), - role varchar(32) not null /* comment 'string representing the role'*/, - created timestamp /* not null comment 'date the role was granted'*/, - - primary key (profile_id, role) - -); - -create table location_namespace ( - - id integer /*comment 'identity for this namespace'*/, - description text /* comment 'description of the namespace'*/ , - created integer not null /*comment 'date the record was created*/ , - /* modified timestamp comment 'date this record was modified',*/ - primary key (id) - -); - -create table login_token ( - user_id integer not null /* comment 'user owning this token'*/ references "user" (id), - token char(32) not null /* comment 'token useable for logging in'*/, - created timestamp not null DEFAULT CURRENT_TIMESTAMP /* comment 'date this record was created'*/, - modified timestamp /* comment 'date this record was modified'*/, - - primary key (user_id) -); - -create table user_location_prefs ( - user_id integer not null /* comment 'user who has the preference' */ references "user" (id), - share_location integer default 1 /* comment 'Whether to share location data' */, - created timestamp not null DEFAULT CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */, - - primary key (user_id) -); - -create table inbox ( - - user_id integer not null /* comment 'user receiving the notice' */ references "user" (id), - notice_ids bytea /* comment 'packed list of notice ids' */, - - primary key (user_id) - -); - -create sequence conversation_seq; -create table conversation ( - id bigint default nextval('conversation_seq') primary key /* comment 'unique identifier' */, - uri varchar(225) unique /* comment 'URI of the conversation' */, - created timestamp not null DEFAULT CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */ -); - -create table local_group ( - - group_id integer primary key /* comment 'group represented' */ references user_group (id), - nickname varchar(64) unique /* comment 'group represented' */, - - created timestamp not null DEFAULT CURRENT_TIMESTAMP /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */ - -); -