Show spam aliases #
This commit is contained in:
400
data/web/rc/SQL/mssql.initial.sql
Normal file
400
data/web/rc/SQL/mssql.initial.sql
Normal file
@@ -0,0 +1,400 @@
|
||||
CREATE TABLE [dbo].[cache] (
|
||||
[user_id] [int] NOT NULL ,
|
||||
[cache_key] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[expires] [datetime] NULL ,
|
||||
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[cache_shared] (
|
||||
[cache_key] [varchar] (255) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[expires] [datetime] NULL ,
|
||||
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[cache_index] (
|
||||
[user_id] [int] NOT NULL ,
|
||||
[mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[expires] [datetime] NULL ,
|
||||
[valid] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[cache_thread] (
|
||||
[user_id] [int] NOT NULL ,
|
||||
[mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[expires] [datetime] NULL ,
|
||||
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[cache_messages] (
|
||||
[user_id] [int] NOT NULL ,
|
||||
[mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[uid] [int] NOT NULL ,
|
||||
[expires] [datetime] NULL ,
|
||||
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[flags] [int] NOT NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[contacts] (
|
||||
[contact_id] [int] IDENTITY (1, 1) NOT NULL ,
|
||||
[user_id] [int] NOT NULL ,
|
||||
[changed] [datetime] NOT NULL ,
|
||||
[del] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[email] [varchar] (8000) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[firstname] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[surname] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[vcard] [text] COLLATE Latin1_General_CI_AI NULL ,
|
||||
[words] [text] COLLATE Latin1_General_CI_AI NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[contactgroups] (
|
||||
[contactgroup_id] [int] IDENTITY (1, 1) NOT NULL ,
|
||||
[user_id] [int] NOT NULL ,
|
||||
[changed] [datetime] NOT NULL ,
|
||||
[del] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[contactgroupmembers] (
|
||||
[contactgroup_id] [int] NOT NULL ,
|
||||
[contact_id] [int] NOT NULL ,
|
||||
[created] [datetime] NOT NULL
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[identities] (
|
||||
[identity_id] [int] IDENTITY (1, 1) NOT NULL ,
|
||||
[user_id] [int] NOT NULL ,
|
||||
[changed] [datetime] NOT NULL ,
|
||||
[del] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[standard] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[organization] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[email] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[reply-to] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[bcc] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[signature] [text] COLLATE Latin1_General_CI_AI NULL,
|
||||
[html_signature] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[session] (
|
||||
[sess_id] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[created] [datetime] NOT NULL ,
|
||||
[changed] [datetime] NULL ,
|
||||
[ip] [varchar] (40) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[vars] [text] COLLATE Latin1_General_CI_AI NOT NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[users] (
|
||||
[user_id] [int] IDENTITY (1, 1) NOT NULL ,
|
||||
[username] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[mail_host] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[created] [datetime] NOT NULL ,
|
||||
[last_login] [datetime] NULL ,
|
||||
[failed_login] [datetime] NULL ,
|
||||
[failed_login_counter] [int] NULL ,
|
||||
[language] [varchar] (5) COLLATE Latin1_General_CI_AI NULL ,
|
||||
[preferences] [text] COLLATE Latin1_General_CI_AI NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[dictionary] (
|
||||
[user_id] [int] ,
|
||||
[language] [varchar] (5) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[searches] (
|
||||
[search_id] [int] IDENTITY (1, 1) NOT NULL ,
|
||||
[user_id] [int] NOT NULL ,
|
||||
[type] [tinyint] NOT NULL ,
|
||||
[name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[system] (
|
||||
[name] [varchar] (64) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[value] [text] COLLATE Latin1_General_CI_AI NOT NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache] WITH NOCHECK ADD
|
||||
PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[user_id],[cache_key]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache_shared] WITH NOCHECK ADD
|
||||
PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[cache_key]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache_index] WITH NOCHECK ADD
|
||||
PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[user_id],[mailbox]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache_thread] WITH NOCHECK ADD
|
||||
PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[user_id],[mailbox]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache_messages] WITH NOCHECK ADD
|
||||
PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[user_id],[mailbox],[uid]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[contacts] WITH NOCHECK ADD
|
||||
CONSTRAINT [PK_contacts_contact_id] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[contact_id]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[contactgroups] WITH NOCHECK ADD
|
||||
CONSTRAINT [PK_contactgroups_contactgroup_id] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[contactgroup_id]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[contactgroupmembers] WITH NOCHECK ADD
|
||||
CONSTRAINT [PK_contactgroupmembers_id] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[contactgroup_id], [contact_id]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[identities] WITH NOCHECK ADD
|
||||
PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[identity_id]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[session] WITH NOCHECK ADD
|
||||
CONSTRAINT [PK_session_sess_id] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[sess_id]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[users] WITH NOCHECK ADD
|
||||
CONSTRAINT [PK_users_user_id] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[user_id]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[searches] WITH NOCHECK ADD
|
||||
CONSTRAINT [PK_searches_search_id] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[search_id]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[system] WITH NOCHECK ADD
|
||||
CONSTRAINT [PK_system_name] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[name]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache] ADD
|
||||
CONSTRAINT [DF_cache_user_id] DEFAULT ('0') FOR [user_id],
|
||||
CONSTRAINT [DF_cache_cache_key] DEFAULT ('') FOR [cache_key],
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache_index] ADD
|
||||
CONSTRAINT [DF_cache_index_valid] DEFAULT ('0') FOR [valid]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache_messages] ADD
|
||||
CONSTRAINT [DF_cache_messages_flags] DEFAULT (0) FOR [flags]
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_cache_shared_cache_key] ON [dbo].[cache_shared]([cache_key]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_cache_index_user_id] ON [dbo].[cache_index]([user_id]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_cache_thread_user_id] ON [dbo].[cache_thread]([user_id]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_cache_messages_user_id] ON [dbo].[cache_messages]([user_id]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_cache_expires] ON [dbo].[cache]([expires]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_cache_shared_expires] ON [dbo].[cache_shared]([expires]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_cache_index_expires] ON [dbo].[cache_index]([expires]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_cache_thread_expires] ON [dbo].[cache_thread]([expires]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_cache_messages_expires] ON [dbo].[cache_messages]([expires]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[contacts] ADD
|
||||
CONSTRAINT [DF_contacts_user_id] DEFAULT (0) FOR [user_id],
|
||||
CONSTRAINT [DF_contacts_changed] DEFAULT (getdate()) FOR [changed],
|
||||
CONSTRAINT [DF_contacts_del] DEFAULT ('0') FOR [del],
|
||||
CONSTRAINT [DF_contacts_name] DEFAULT ('') FOR [name],
|
||||
CONSTRAINT [DF_contacts_email] DEFAULT ('') FOR [email],
|
||||
CONSTRAINT [DF_contacts_firstname] DEFAULT ('') FOR [firstname],
|
||||
CONSTRAINT [DF_contacts_surname] DEFAULT ('') FOR [surname],
|
||||
CONSTRAINT [CK_contacts_del] CHECK ([del] = '1' or [del] = '0')
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_contacts_user_id] ON [dbo].[contacts]([user_id]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[contactgroups] ADD
|
||||
CONSTRAINT [DF_contactgroups_user_id] DEFAULT (0) FOR [user_id],
|
||||
CONSTRAINT [DF_contactgroups_changed] DEFAULT (getdate()) FOR [changed],
|
||||
CONSTRAINT [DF_contactgroups_del] DEFAULT ('0') FOR [del],
|
||||
CONSTRAINT [DF_contactgroups_name] DEFAULT ('') FOR [name],
|
||||
CONSTRAINT [CK_contactgroups_del] CHECK ([del] = '1' or [del] = '0')
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_contactgroups_user_id] ON [dbo].[contactgroups]([user_id]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[contactgroupmembers] ADD
|
||||
CONSTRAINT [DF_contactgroupmembers_contactgroup_id] DEFAULT (0) FOR [contactgroup_id],
|
||||
CONSTRAINT [DF_contactgroupmembers_contact_id] DEFAULT (0) FOR [contact_id],
|
||||
CONSTRAINT [DF_contactgroupmembers_created] DEFAULT (getdate()) FOR [created]
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_contactgroupmembers_contact_id] ON [dbo].[contactgroupmembers]([contact_id]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[identities] ADD
|
||||
CONSTRAINT [DF_identities_user] DEFAULT ('0') FOR [user_id],
|
||||
CONSTRAINT [DF_identities_del] DEFAULT ('0') FOR [del],
|
||||
CONSTRAINT [DF_identities_standard] DEFAULT ('0') FOR [standard],
|
||||
CONSTRAINT [DF_identities_name] DEFAULT ('') FOR [name],
|
||||
CONSTRAINT [DF_identities_organization] DEFAULT ('') FOR [organization],
|
||||
CONSTRAINT [DF_identities_email] DEFAULT ('') FOR [email],
|
||||
CONSTRAINT [DF_identities_reply] DEFAULT ('') FOR [reply-to],
|
||||
CONSTRAINT [DF_identities_bcc] DEFAULT ('') FOR [bcc],
|
||||
CONSTRAINT [DF_identities_html_signature] DEFAULT ('0') FOR [html_signature],
|
||||
CHECK ([standard] = '1' or [standard] = '0'),
|
||||
CHECK ([del] = '1' or [del] = '0')
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_identities_user_id] ON [dbo].[identities]([user_id]) ON [PRIMARY]
|
||||
GO
|
||||
CREATE INDEX [IX_identities_email] ON [dbo].[identities]([email],[del]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[session] ADD
|
||||
CONSTRAINT [DF_session_sess_id] DEFAULT ('') FOR [sess_id],
|
||||
CONSTRAINT [DF_session_ip] DEFAULT ('') FOR [ip]
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_session_changed] ON [dbo].[session]([changed]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[users] ADD
|
||||
CONSTRAINT [DF_users_username] DEFAULT ('') FOR [username],
|
||||
CONSTRAINT [DF_users_mail_host] DEFAULT ('') FOR [mail_host],
|
||||
CONSTRAINT [DF_users_created] DEFAULT (getdate()) FOR [created]
|
||||
GO
|
||||
|
||||
CREATE UNIQUE INDEX [IX_users_username] ON [dbo].[users]([username],[mail_host]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE UNIQUE INDEX [IX_dictionary_user_language] ON [dbo].[dictionary]([user_id],[language]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[searches] ADD
|
||||
CONSTRAINT [DF_searches_user] DEFAULT (0) FOR [user_id],
|
||||
CONSTRAINT [DF_searches_type] DEFAULT (0) FOR [type]
|
||||
GO
|
||||
|
||||
CREATE UNIQUE INDEX [IX_searches_user_type_name] ON [dbo].[searches]([user_id],[type],[name]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[identities] ADD CONSTRAINT [FK_identities_user_id]
|
||||
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[contacts] ADD CONSTRAINT [FK_contacts_user_id]
|
||||
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[contactgroups] ADD CONSTRAINT [FK_contactgroups_user_id]
|
||||
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache] ADD CONSTRAINT [FK_cache_user_id]
|
||||
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache_index] ADD CONSTRAINT [FK_cache_index_user_id]
|
||||
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache_thread] ADD CONSTRAINT [FK_cache_thread_user_id]
|
||||
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache_messages] ADD CONSTRAINT [FK_cache_messages_user_id]
|
||||
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[contactgroupmembers] ADD CONSTRAINT [FK_contactgroupmembers_contactgroup_id]
|
||||
FOREIGN KEY ([contactgroup_id]) REFERENCES [dbo].[contactgroups] ([contactgroup_id])
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[searches] ADD CONSTRAINT [FK_searches_user_id]
|
||||
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
GO
|
||||
|
||||
-- Use trigger instead of foreign key (#1487112)
|
||||
-- "Introducing FOREIGN KEY constraint ... may cause cycles or multiple cascade paths."
|
||||
CREATE TRIGGER [contact_delete_member] ON [dbo].[contacts]
|
||||
AFTER DELETE AS
|
||||
DELETE FROM [dbo].[contactgroupmembers]
|
||||
WHERE [contact_id] IN (SELECT [contact_id] FROM deleted)
|
||||
GO
|
||||
|
||||
INSERT INTO [dbo].[system] ([name], [value]) VALUES ('roundcube-version', '2016112200')
|
||||
GO
|
||||
|
87
data/web/rc/SQL/mssql/2009103100.sql
Normal file
87
data/web/rc/SQL/mssql/2009103100.sql
Normal file
@@ -0,0 +1,87 @@
|
||||
-- Updates from version 0.3.1
|
||||
|
||||
ALTER TABLE [dbo].[messages] ADD CONSTRAINT [FK_messages_user_id]
|
||||
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache] ADD CONSTRAINT [FK_cache_user_id]
|
||||
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[contacts] ADD CONSTRAINT [FK_contacts_user_id]
|
||||
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[identities] ADD CONSTRAINT [FK_identities_user_id]
|
||||
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[identities] ADD [changed] [datetime] NULL
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[contactgroups] (
|
||||
[contactgroup_id] [int] IDENTITY (1, 1) NOT NULL ,
|
||||
[user_id] [int] NOT NULL ,
|
||||
[changed] [datetime] NOT NULL ,
|
||||
[del] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[contactgroupmembers] (
|
||||
[contactgroup_id] [int] NOT NULL ,
|
||||
[contact_id] [int] NOT NULL ,
|
||||
[created] [datetime] NOT NULL
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[contactgroups] WITH NOCHECK ADD
|
||||
CONSTRAINT [PK_contactgroups_contactgroup_id] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[contactgroup_id]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[contactgroupmembers] WITH NOCHECK ADD
|
||||
CONSTRAINT [PK_contactgroupmembers_id] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[contactgroup_id], [contact_id]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[contactgroups] ADD
|
||||
CONSTRAINT [DF_contactgroups_user_id] DEFAULT (0) FOR [user_id],
|
||||
CONSTRAINT [DF_contactgroups_changed] DEFAULT (getdate()) FOR [changed],
|
||||
CONSTRAINT [DF_contactgroups_del] DEFAULT ('0') FOR [del],
|
||||
CONSTRAINT [DF_contactgroups_name] DEFAULT ('') FOR [name],
|
||||
CONSTRAINT [CK_contactgroups_del] CHECK ([del] = '1' or [del] = '0')
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_contactgroups_user_id] ON [dbo].[contacts]([user_id]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[contactgroupmembers] ADD
|
||||
CONSTRAINT [DF_contactgroupmembers_contactgroup_id] DEFAULT (0) FOR [contactgroup_id],
|
||||
CONSTRAINT [DF_contactgroupmembers_contact_id] DEFAULT (0) FOR [contact_id],
|
||||
CONSTRAINT [DF_contactgroupmembers_created] DEFAULT (getdate()) FOR [created]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[contactgroupmembers] ADD CONSTRAINT [FK_contactgroupmembers_contactgroup_id]
|
||||
FOREIGN KEY ([contactgroup_id]) REFERENCES [dbo].[contactgroups] ([contactgroup_id])
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
GO
|
||||
|
||||
CREATE TRIGGER [contact_delete_member] ON [dbo].[contacts]
|
||||
AFTER DELETE AS
|
||||
DELETE FROM [dbo].[contactgroupmembers]
|
||||
WHERE [contact_id] IN (SELECT [contact_id] FROM deleted)
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[contactgroups] ADD CONSTRAINT [FK_contactgroups_user_id]
|
||||
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
GO
|
9
data/web/rc/SQL/mssql/2010100600.sql
Normal file
9
data/web/rc/SQL/mssql/2010100600.sql
Normal file
@@ -0,0 +1,9 @@
|
||||
-- Updates from version 0.4.2
|
||||
|
||||
DROP INDEX [IX_users_username]
|
||||
GO
|
||||
CREATE UNIQUE INDEX [IX_users_username] ON [dbo].[users]([username],[mail_host]) ON [PRIMARY]
|
||||
GO
|
||||
ALTER TABLE [dbo].[contacts] ALTER COLUMN [email] [varchar] (255) COLLATE Latin1_General_CI_AI NOT NULL
|
||||
GO
|
||||
|
10
data/web/rc/SQL/mssql/2011011200.sql
Normal file
10
data/web/rc/SQL/mssql/2011011200.sql
Normal file
@@ -0,0 +1,10 @@
|
||||
-- Updates from version 0.5.x
|
||||
|
||||
ALTER TABLE [dbo].[contacts] ADD [words] [text] COLLATE Latin1_General_CI_AI NULL
|
||||
GO
|
||||
CREATE INDEX [IX_contactgroupmembers_contact_id] ON [dbo].[contactgroupmembers]([contact_id]) ON [PRIMARY]
|
||||
GO
|
||||
DELETE FROM [dbo].[messages]
|
||||
GO
|
||||
DELETE FROM [dbo].[cache]
|
||||
GO
|
127
data/web/rc/SQL/mssql/2011092800.sql
Normal file
127
data/web/rc/SQL/mssql/2011092800.sql
Normal file
@@ -0,0 +1,127 @@
|
||||
-- Updates from version 0.6
|
||||
|
||||
CREATE TABLE [dbo].[dictionary] (
|
||||
[user_id] [int] ,
|
||||
[language] [varchar] (5) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
CREATE UNIQUE INDEX [IX_dictionary_user_language] ON [dbo].[dictionary]([user_id],[language]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[searches] (
|
||||
[search_id] [int] IDENTITY (1, 1) NOT NULL ,
|
||||
[user_id] [int] NOT NULL ,
|
||||
[type] [tinyint] NOT NULL ,
|
||||
[name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[searches] WITH NOCHECK ADD
|
||||
CONSTRAINT [PK_searches_search_id] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[search_id]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[searches] ADD
|
||||
CONSTRAINT [DF_searches_user] DEFAULT (0) FOR [user_id],
|
||||
CONSTRAINT [DF_searches_type] DEFAULT (0) FOR [type],
|
||||
GO
|
||||
|
||||
CREATE UNIQUE INDEX [IX_searches_user_type_name] ON [dbo].[searches]([user_id],[type],[name]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[searches] ADD CONSTRAINT [FK_searches_user_id]
|
||||
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
GO
|
||||
|
||||
DROP TABLE [dbo].[messages]
|
||||
GO
|
||||
CREATE TABLE [dbo].[cache_index] (
|
||||
[user_id] [int] NOT NULL ,
|
||||
[mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[changed] [datetime] NOT NULL ,
|
||||
[valid] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[cache_thread] (
|
||||
[user_id] [int] NOT NULL ,
|
||||
[mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[changed] [datetime] NOT NULL ,
|
||||
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[cache_messages] (
|
||||
[user_id] [int] NOT NULL ,
|
||||
[mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[uid] [int] NOT NULL ,
|
||||
[changed] [datetime] NOT NULL ,
|
||||
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[flags] [int] NOT NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache_index] WITH NOCHECK ADD
|
||||
PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[user_id],[mailbox]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache_thread] WITH NOCHECK ADD
|
||||
PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[user_id],[mailbox]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache_messages] WITH NOCHECK ADD
|
||||
PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[user_id],[mailbox],[uid]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache_index] ADD
|
||||
CONSTRAINT [DF_cache_index_changed] DEFAULT (getdate()) FOR [changed],
|
||||
CONSTRAINT [DF_cache_index_valid] DEFAULT ('0') FOR [valid]
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_cache_index_user_id] ON [dbo].[cache_index]([user_id]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache_thread] ADD
|
||||
CONSTRAINT [DF_cache_thread_changed] DEFAULT (getdate()) FOR [changed]
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_cache_thread_user_id] ON [dbo].[cache_thread]([user_id]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache_messages] ADD
|
||||
CONSTRAINT [DF_cache_messages_changed] DEFAULT (getdate()) FOR [changed],
|
||||
CONSTRAINT [DF_cache_messages_flags] DEFAULT (0) FOR [flags]
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_cache_messages_user_id] ON [dbo].[cache_messages]([user_id]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache_index] ADD CONSTRAINT [FK_cache_index_user_id]
|
||||
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache_thread] ADD CONSTRAINT [FK_cache_thread_user_id]
|
||||
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache_messages] ADD CONSTRAINT [FK_cache_messages_user_id]
|
||||
FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
GO
|
4
data/web/rc/SQL/mssql/2011111600.sql
Normal file
4
data/web/rc/SQL/mssql/2011111600.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
-- Updates from version 0.7-beta
|
||||
|
||||
ALTER TABLE [dbo].[session] ALTER COLUMN [sess_id] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL
|
||||
GO
|
9
data/web/rc/SQL/mssql/2011121400.sql
Normal file
9
data/web/rc/SQL/mssql/2011121400.sql
Normal file
@@ -0,0 +1,9 @@
|
||||
-- Updates from version 0.7
|
||||
|
||||
ALTER TABLE [dbo].[contacts] DROP CONSTRAINT [DF_contacts_email]
|
||||
GO
|
||||
ALTER TABLE [dbo].[contacts] ALTER COLUMN [email] [text] COLLATE Latin1_General_CI_AI NOT NULL
|
||||
GO
|
||||
ALTER TABLE [dbo].[contacts] ADD CONSTRAINT [DF_contacts_email] DEFAULT ('') FOR [email]
|
||||
GO
|
||||
|
18
data/web/rc/SQL/mssql/2012051800.sql
Normal file
18
data/web/rc/SQL/mssql/2012051800.sql
Normal file
@@ -0,0 +1,18 @@
|
||||
-- Updates from version 0.8-rc
|
||||
|
||||
ALTER TABLE [dbo].[contacts] DROP CONSTRAINT [DF_contacts_email]
|
||||
GO
|
||||
ALTER TABLE [dbo].[contacts] ALTER COLUMN [email] [varchar] (8000) COLLATE Latin1_General_CI_AI NOT NULL
|
||||
GO
|
||||
ALTER TABLE [dbo].[contacts] ADD CONSTRAINT [DF_contacts_email] DEFAULT ('') FOR [email]
|
||||
GO
|
||||
|
||||
-- Updates from version 0.8
|
||||
|
||||
ALTER TABLE [dbo].[cache] DROP COLUMN [cache_id]
|
||||
GO
|
||||
ALTER TABLE [dbo].[users] DROP COLUMN [alias]
|
||||
GO
|
||||
CREATE INDEX [IX_identities_email] ON [dbo].[identities]([email],[del]) ON [PRIMARY]
|
||||
GO
|
||||
|
8
data/web/rc/SQL/mssql/2012080700.sql
Normal file
8
data/web/rc/SQL/mssql/2012080700.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
-- Updates from version 0.8
|
||||
|
||||
ALTER TABLE [dbo].[cache] DROP COLUMN [cache_id]
|
||||
GO
|
||||
ALTER TABLE [dbo].[users] DROP COLUMN [alias]
|
||||
GO
|
||||
CREATE INDEX [IX_identities_email] ON [dbo].[identities]([email],[del]) ON [PRIMARY]
|
||||
GO
|
14
data/web/rc/SQL/mssql/2013011000.sql
Normal file
14
data/web/rc/SQL/mssql/2013011000.sql
Normal file
@@ -0,0 +1,14 @@
|
||||
-- Upgrades from 0.9-beta
|
||||
|
||||
CREATE TABLE [dbo].[system] (
|
||||
[name] [varchar] (64) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[value] [text] COLLATE Latin1_General_CI_AI
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[system] WITH NOCHECK ADD
|
||||
CONSTRAINT [PK_system_name] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[name]
|
||||
) ON [PRIMARY]
|
||||
GO
|
1
data/web/rc/SQL/mssql/2013042700.sql
Normal file
1
data/web/rc/SQL/mssql/2013042700.sql
Normal file
@@ -0,0 +1 @@
|
||||
-- empty
|
17
data/web/rc/SQL/mssql/2013052500.sql
Normal file
17
data/web/rc/SQL/mssql/2013052500.sql
Normal file
@@ -0,0 +1,17 @@
|
||||
CREATE TABLE [dbo].[cache_shared] (
|
||||
[cache_key] [varchar] (255) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[created] [datetime] NOT NULL ,
|
||||
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[cache_shared] ADD
|
||||
CONSTRAINT [DF_cache_shared_created] DEFAULT (getdate()) FOR [created]
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_cache_shared_cache_key] ON [dbo].[cache_shared]([cache_key]) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_cache_shared_created] ON [dbo].[cache_shared]([created]) ON [PRIMARY]
|
||||
GO
|
||||
|
44
data/web/rc/SQL/mssql/2013061000.sql
Normal file
44
data/web/rc/SQL/mssql/2013061000.sql
Normal file
@@ -0,0 +1,44 @@
|
||||
ALTER TABLE [dbo].[cache] ADD [expires] [datetime] NULL
|
||||
GO
|
||||
ALTER TABLE [dbo].[cache_shared] ADD [expires] [datetime] NULL
|
||||
GO
|
||||
ALTER TABLE [dbo].[cache_index] ADD [expires] [datetime] NULL
|
||||
GO
|
||||
ALTER TABLE [dbo].[cache_thread] ADD [expires] [datetime] NULL
|
||||
GO
|
||||
ALTER TABLE [dbo].[cache_messages] ADD [expires] [datetime] NULL
|
||||
GO
|
||||
|
||||
UPDATE [dbo].[cache] SET [expires] = DATEADD(second, 604800, [created])
|
||||
GO
|
||||
UPDATE [dbo].[cache_shared] SET [expires] = DATEADD(second, 604800, [created])
|
||||
GO
|
||||
UPDATE [dbo].[cache_index] SET [expires] = DATEADD(second, 604800, [changed])
|
||||
GO
|
||||
UPDATE [dbo].[cache_thread] SET [expires] = DATEADD(second, 604800, [changed])
|
||||
GO
|
||||
UPDATE [dbo].[cache_messages] SET [expires] = DATEADD(second, 604800, [changed])
|
||||
GO
|
||||
|
||||
DROP INDEX [IX_cache_created]
|
||||
GO
|
||||
DROP INDEX [IX_cache_shared_created]
|
||||
GO
|
||||
ALTER TABLE [dbo].[cache_index] DROP COLUMN [changed]
|
||||
GO
|
||||
ALTER TABLE [dbo].[cache_thread] DROP COLUMN [changed]
|
||||
GO
|
||||
ALTER TABLE [dbo].[cache_messages] DROP COLUMN [changed]
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_cache_expires] ON [dbo].[cache]([expires]) ON [PRIMARY]
|
||||
GO
|
||||
CREATE INDEX [IX_cache_shared_expires] ON [dbo].[cache_shared]([expires]) ON [PRIMARY]
|
||||
GO
|
||||
CREATE INDEX [IX_cache_index_expires] ON [dbo].[cache_index]([expires]) ON [PRIMARY]
|
||||
GO
|
||||
CREATE INDEX [IX_cache_thread_expires] ON [dbo].[cache_thread]([expires]) ON [PRIMARY]
|
||||
GO
|
||||
CREATE INDEX [IX_cache_messages_expires] ON [dbo].[cache_messages]([expires]) ON [PRIMARY]
|
||||
GO
|
||||
|
1
data/web/rc/SQL/mssql/2014042900.sql
Normal file
1
data/web/rc/SQL/mssql/2014042900.sql
Normal file
@@ -0,0 +1 @@
|
||||
-- empty
|
1
data/web/rc/SQL/mssql/2015030800.sql
Normal file
1
data/web/rc/SQL/mssql/2015030800.sql
Normal file
@@ -0,0 +1 @@
|
||||
-- empty
|
4
data/web/rc/SQL/mssql/2015111100.sql
Normal file
4
data/web/rc/SQL/mssql/2015111100.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
ALTER TABLE [dbo].[users] ADD [failed_login] [datetime] NULL
|
||||
GO
|
||||
ALTER TABLE [dbo].[users] ADD [failed_login_counter] [int] NULL
|
||||
GO
|
2
data/web/rc/SQL/mssql/2016081200.sql
Normal file
2
data/web/rc/SQL/mssql/2016081200.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE [dbo].[session] DROP COLUMN [created]
|
||||
GO
|
2
data/web/rc/SQL/mssql/2016100900.sql
Normal file
2
data/web/rc/SQL/mssql/2016100900.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE [dbo].[session] ALTER COLUMN [ip] [varchar] (40) COLLATE Latin1_General_CI_AI NOT NULL
|
||||
GO
|
36
data/web/rc/SQL/mssql/2016112200.sql
Normal file
36
data/web/rc/SQL/mssql/2016112200.sql
Normal file
@@ -0,0 +1,36 @@
|
||||
DROP TABLE [dbo].[cache]
|
||||
GO
|
||||
DROP TABLE [dbo].[cache_shared]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[cache] (
|
||||
[user_id] [int] NOT NULL ,
|
||||
[cache_key] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[expires] [datetime] NULL ,
|
||||
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
CREATE TABLE [dbo].[cache_shared] (
|
||||
[cache_key] [varchar] (255) COLLATE Latin1_General_CI_AI NOT NULL ,
|
||||
[expires] [datetime] NULL ,
|
||||
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL
|
||||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||||
GO
|
||||
ALTER TABLE [dbo].[cache] ADD
|
||||
CONSTRAINT [DF_cache_user_id] DEFAULT ('0') FOR [user_id],
|
||||
CONSTRAINT [DF_cache_cache_key] DEFAULT ('') FOR [cache_key],
|
||||
GO
|
||||
CREATE INDEX [IX_cache_expires] ON [dbo].[cache]([expires]) ON [PRIMARY]
|
||||
GO
|
||||
CREATE INDEX [IX_cache_shared_expires] ON [dbo].[cache_shared]([expires]) ON [PRIMARY]
|
||||
GO
|
||||
ALTER TABLE [dbo].[cache] WITH NOCHECK ADD
|
||||
PRIMARY KEY CLUSTERED (
|
||||
[user_id],[cache_key]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
ALTER TABLE [dbo].[cache_shared] WITH NOCHECK ADD
|
||||
PRIMARY KEY CLUSTERED (
|
||||
[cache_key]
|
||||
) ON [PRIMARY]
|
||||
GO
|
212
data/web/rc/SQL/mysql.initial.sql
Normal file
212
data/web/rc/SQL/mysql.initial.sql
Normal file
@@ -0,0 +1,212 @@
|
||||
-- Roundcube Webmail initial database structure
|
||||
|
||||
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
|
||||
|
||||
-- Table structure for table `session`
|
||||
|
||||
CREATE TABLE `session` (
|
||||
`sess_id` varchar(128) NOT NULL,
|
||||
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
`ip` varchar(40) NOT NULL,
|
||||
`vars` mediumtext NOT NULL,
|
||||
PRIMARY KEY(`sess_id`),
|
||||
INDEX `changed_index` (`changed`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
|
||||
-- Table structure for table `users`
|
||||
|
||||
CREATE TABLE `users` (
|
||||
`user_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`username` varchar(128) BINARY NOT NULL,
|
||||
`mail_host` varchar(128) NOT NULL,
|
||||
`created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
`last_login` datetime DEFAULT NULL,
|
||||
`failed_login` datetime DEFAULT NULL,
|
||||
`failed_login_counter` int(10) UNSIGNED DEFAULT NULL,
|
||||
`language` varchar(5),
|
||||
`preferences` longtext,
|
||||
PRIMARY KEY(`user_id`),
|
||||
UNIQUE `username` (`username`, `mail_host`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
|
||||
-- Table structure for table `cache`
|
||||
|
||||
CREATE TABLE `cache` (
|
||||
`user_id` int(10) UNSIGNED NOT NULL,
|
||||
`cache_key` varchar(128) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL,
|
||||
`expires` datetime DEFAULT NULL,
|
||||
`data` longtext NOT NULL,
|
||||
PRIMARY KEY (`user_id`, `cache_key`),
|
||||
CONSTRAINT `user_id_fk_cache` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
INDEX `expires_index` (`expires`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
|
||||
-- Table structure for table `cache_shared`
|
||||
|
||||
CREATE TABLE `cache_shared` (
|
||||
`cache_key` varchar(255) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL,
|
||||
`expires` datetime DEFAULT NULL,
|
||||
`data` longtext NOT NULL,
|
||||
PRIMARY KEY (`cache_key`),
|
||||
INDEX `expires_index` (`expires`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
|
||||
-- Table structure for table `cache_index`
|
||||
|
||||
CREATE TABLE `cache_index` (
|
||||
`user_id` int(10) UNSIGNED NOT NULL,
|
||||
`mailbox` varchar(255) BINARY NOT NULL,
|
||||
`expires` datetime DEFAULT NULL,
|
||||
`valid` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`data` longtext NOT NULL,
|
||||
CONSTRAINT `user_id_fk_cache_index` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
INDEX `expires_index` (`expires`),
|
||||
PRIMARY KEY (`user_id`, `mailbox`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
|
||||
-- Table structure for table `cache_thread`
|
||||
|
||||
CREATE TABLE `cache_thread` (
|
||||
`user_id` int(10) UNSIGNED NOT NULL,
|
||||
`mailbox` varchar(255) BINARY NOT NULL,
|
||||
`expires` datetime DEFAULT NULL,
|
||||
`data` longtext NOT NULL,
|
||||
CONSTRAINT `user_id_fk_cache_thread` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
INDEX `expires_index` (`expires`),
|
||||
PRIMARY KEY (`user_id`, `mailbox`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
|
||||
-- Table structure for table `cache_messages`
|
||||
|
||||
CREATE TABLE `cache_messages` (
|
||||
`user_id` int(10) UNSIGNED NOT NULL,
|
||||
`mailbox` varchar(255) BINARY NOT NULL,
|
||||
`uid` int(11) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`expires` datetime DEFAULT NULL,
|
||||
`data` longtext NOT NULL,
|
||||
`flags` int(11) NOT NULL DEFAULT '0',
|
||||
CONSTRAINT `user_id_fk_cache_messages` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
INDEX `expires_index` (`expires`),
|
||||
PRIMARY KEY (`user_id`, `mailbox`, `uid`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
|
||||
-- Table structure for table `contacts`
|
||||
|
||||
CREATE TABLE `contacts` (
|
||||
`contact_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
`del` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`name` varchar(128) NOT NULL DEFAULT '',
|
||||
`email` text NOT NULL,
|
||||
`firstname` varchar(128) NOT NULL DEFAULT '',
|
||||
`surname` varchar(128) NOT NULL DEFAULT '',
|
||||
`vcard` longtext NULL,
|
||||
`words` text NULL,
|
||||
`user_id` int(10) UNSIGNED NOT NULL,
|
||||
PRIMARY KEY(`contact_id`),
|
||||
CONSTRAINT `user_id_fk_contacts` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
INDEX `user_contacts_index` (`user_id`,`del`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
-- Table structure for table `contactgroups`
|
||||
|
||||
CREATE TABLE `contactgroups` (
|
||||
`contactgroup_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(10) UNSIGNED NOT NULL,
|
||||
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
`del` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`name` varchar(128) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY(`contactgroup_id`),
|
||||
CONSTRAINT `user_id_fk_contactgroups` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
INDEX `contactgroups_user_index` (`user_id`,`del`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
CREATE TABLE `contactgroupmembers` (
|
||||
`contactgroup_id` int(10) UNSIGNED NOT NULL,
|
||||
`contact_id` int(10) UNSIGNED NOT NULL,
|
||||
`created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
PRIMARY KEY (`contactgroup_id`, `contact_id`),
|
||||
CONSTRAINT `contactgroup_id_fk_contactgroups` FOREIGN KEY (`contactgroup_id`)
|
||||
REFERENCES `contactgroups`(`contactgroup_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `contact_id_fk_contacts` FOREIGN KEY (`contact_id`)
|
||||
REFERENCES `contacts`(`contact_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
INDEX `contactgroupmembers_contact_index` (`contact_id`)
|
||||
) /*!40000 ENGINE=INNODB */;
|
||||
|
||||
|
||||
-- Table structure for table `identities`
|
||||
|
||||
CREATE TABLE `identities` (
|
||||
`identity_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(10) UNSIGNED NOT NULL,
|
||||
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
`del` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`standard` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`name` varchar(128) NOT NULL,
|
||||
`organization` varchar(128) NOT NULL DEFAULT '',
|
||||
`email` varchar(128) NOT NULL,
|
||||
`reply-to` varchar(128) NOT NULL DEFAULT '',
|
||||
`bcc` varchar(128) NOT NULL DEFAULT '',
|
||||
`signature` longtext,
|
||||
`html_signature` tinyint(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY(`identity_id`),
|
||||
CONSTRAINT `user_id_fk_identities` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
INDEX `user_identities_index` (`user_id`, `del`),
|
||||
INDEX `email_identities_index` (`email`, `del`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
|
||||
-- Table structure for table `dictionary`
|
||||
|
||||
CREATE TABLE `dictionary` (
|
||||
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, -- redundant, for compat. with Galera Cluster
|
||||
`user_id` int(10) UNSIGNED DEFAULT NULL, -- NULL here is for "shared dictionaries"
|
||||
`language` varchar(5) NOT NULL,
|
||||
`data` longtext NOT NULL,
|
||||
CONSTRAINT `user_id_fk_dictionary` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
UNIQUE `uniqueness` (`user_id`, `language`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
|
||||
-- Table structure for table `searches`
|
||||
|
||||
CREATE TABLE `searches` (
|
||||
`search_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(10) UNSIGNED NOT NULL,
|
||||
`type` int(3) NOT NULL DEFAULT '0',
|
||||
`name` varchar(128) NOT NULL,
|
||||
`data` text,
|
||||
PRIMARY KEY(`search_id`),
|
||||
CONSTRAINT `user_id_fk_searches` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
UNIQUE `uniqueness` (`user_id`, `type`, `name`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
|
||||
-- Table structure for table `system`
|
||||
|
||||
CREATE TABLE `system` (
|
||||
`name` varchar(64) NOT NULL,
|
||||
`value` mediumtext,
|
||||
PRIMARY KEY(`name`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
|
||||
|
||||
INSERT INTO system (name, value) VALUES ('roundcube-version', '2016112200');
|
16
data/web/rc/SQL/mysql/2008030300.sql
Normal file
16
data/web/rc/SQL/mysql/2008030300.sql
Normal file
@@ -0,0 +1,16 @@
|
||||
-- Updates from version 0.1-stable
|
||||
|
||||
TRUNCATE TABLE `messages`;
|
||||
|
||||
ALTER TABLE `messages`
|
||||
DROP INDEX `idx`,
|
||||
DROP INDEX `uid`;
|
||||
|
||||
ALTER TABLE `cache`
|
||||
DROP INDEX `cache_key`,
|
||||
DROP INDEX `session_id`,
|
||||
ADD INDEX `user_cache_index` (`user_id`,`cache_key`);
|
||||
|
||||
ALTER TABLE `users`
|
||||
ADD INDEX `username_index` (`username`),
|
||||
ADD INDEX `alias_index` (`alias`);
|
9
data/web/rc/SQL/mysql/2008040500.sql
Normal file
9
data/web/rc/SQL/mysql/2008040500.sql
Normal file
@@ -0,0 +1,9 @@
|
||||
-- Updates from version 0.1.1
|
||||
|
||||
ALTER TABLE `identities`
|
||||
MODIFY `signature` text,
|
||||
MODIFY `bcc` varchar(128) NOT NULL DEFAULT '',
|
||||
MODIFY `reply-to` varchar(128) NOT NULL DEFAULT '',
|
||||
MODIFY `organization` varchar(128) NOT NULL DEFAULT '',
|
||||
MODIFY `name` varchar(128) NOT NULL,
|
||||
MODIFY `email` varchar(128) NOT NULL;
|
4
data/web/rc/SQL/mysql/2008060900.sql
Normal file
4
data/web/rc/SQL/mysql/2008060900.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
-- Updates from version 0.2-alpha
|
||||
|
||||
ALTER TABLE `messages`
|
||||
ADD INDEX `created_index` (`created`);
|
20
data/web/rc/SQL/mysql/2008092100.sql
Normal file
20
data/web/rc/SQL/mysql/2008092100.sql
Normal file
@@ -0,0 +1,20 @@
|
||||
-- Updates from version 0.2-beta (InnoDB required)
|
||||
|
||||
ALTER TABLE `cache`
|
||||
DROP `session_id`;
|
||||
|
||||
ALTER TABLE `session`
|
||||
ADD INDEX `changed_index` (`changed`);
|
||||
|
||||
ALTER TABLE `cache`
|
||||
ADD INDEX `created_index` (`created`);
|
||||
|
||||
ALTER TABLE `users`
|
||||
CHANGE `language` `language` varchar(5);
|
||||
|
||||
ALTER TABLE `cache` ENGINE=InnoDB;
|
||||
ALTER TABLE `session` ENGINE=InnoDB;
|
||||
ALTER TABLE `messages` ENGINE=InnoDB;
|
||||
ALTER TABLE `users` ENGINE=InnoDB;
|
||||
ALTER TABLE `contacts` ENGINE=InnoDB;
|
||||
ALTER TABLE `identities` ENGINE=InnoDB;
|
12
data/web/rc/SQL/mysql/2009090400.sql
Normal file
12
data/web/rc/SQL/mysql/2009090400.sql
Normal file
@@ -0,0 +1,12 @@
|
||||
-- Updates from version 0.3-stable
|
||||
|
||||
TRUNCATE `messages`;
|
||||
|
||||
ALTER TABLE `messages`
|
||||
ADD INDEX `index_index` (`user_id`, `cache_key`, `idx`);
|
||||
|
||||
ALTER TABLE `session`
|
||||
CHANGE `vars` `vars` MEDIUMTEXT NOT NULL;
|
||||
|
||||
ALTER TABLE `contacts`
|
||||
ADD INDEX `user_contacts_index` (`user_id`,`email`);
|
52
data/web/rc/SQL/mysql/2009103100.sql
Normal file
52
data/web/rc/SQL/mysql/2009103100.sql
Normal file
@@ -0,0 +1,52 @@
|
||||
-- Updates from version 0.3.1
|
||||
-- WARNING: Make sure that all tables are using InnoDB engine!!!
|
||||
-- If not, use: ALTER TABLE xxx ENGINE=InnoDB;
|
||||
|
||||
/* MySQL bug workaround: http://bugs.mysql.com/bug.php?id=46293 */
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
|
||||
|
||||
ALTER TABLE `messages` DROP FOREIGN KEY `user_id_fk_messages`;
|
||||
ALTER TABLE `cache` DROP FOREIGN KEY `user_id_fk_cache`;
|
||||
ALTER TABLE `contacts` DROP FOREIGN KEY `user_id_fk_contacts`;
|
||||
ALTER TABLE `identities` DROP FOREIGN KEY `user_id_fk_identities`;
|
||||
|
||||
ALTER TABLE `messages` ADD CONSTRAINT `user_id_fk_messages` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE `cache` ADD CONSTRAINT `user_id_fk_cache` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE `contacts` ADD CONSTRAINT `user_id_fk_contacts` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE `identities` ADD CONSTRAINT `user_id_fk_identities` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
ALTER TABLE `contacts` ALTER `name` SET DEFAULT '';
|
||||
ALTER TABLE `contacts` ALTER `firstname` SET DEFAULT '';
|
||||
ALTER TABLE `contacts` ALTER `surname` SET DEFAULT '';
|
||||
|
||||
ALTER TABLE `identities` ADD INDEX `user_identities_index` (`user_id`, `del`);
|
||||
ALTER TABLE `identities` ADD `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00' AFTER `user_id`;
|
||||
|
||||
CREATE TABLE `contactgroups` (
|
||||
`contactgroup_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
`del` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`name` varchar(128) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY(`contactgroup_id`),
|
||||
CONSTRAINT `user_id_fk_contactgroups` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
INDEX `contactgroups_user_index` (`user_id`,`del`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
CREATE TABLE `contactgroupmembers` (
|
||||
`contactgroup_id` int(10) UNSIGNED NOT NULL,
|
||||
`contact_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
PRIMARY KEY (`contactgroup_id`, `contact_id`),
|
||||
CONSTRAINT `contactgroup_id_fk_contactgroups` FOREIGN KEY (`contactgroup_id`)
|
||||
REFERENCES `contactgroups`(`contactgroup_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `contact_id_fk_contacts` FOREIGN KEY (`contact_id`)
|
||||
REFERENCES `contacts`(`contact_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) /*!40000 ENGINE=INNODB */;
|
||||
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
|
4
data/web/rc/SQL/mysql/2010042300.sql
Normal file
4
data/web/rc/SQL/mysql/2010042300.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
-- Updates from version 0.4-beta
|
||||
|
||||
ALTER TABLE `users` CHANGE `last_login` `last_login` datetime DEFAULT NULL;
|
||||
UPDATE `users` SET `last_login` = NULL WHERE `last_login` = '1000-01-01 00:00:00';
|
8
data/web/rc/SQL/mysql/2010100600.sql
Normal file
8
data/web/rc/SQL/mysql/2010100600.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
-- Updates from version 0.4.2
|
||||
|
||||
ALTER TABLE `users` DROP INDEX `username_index`;
|
||||
ALTER TABLE `users` ADD UNIQUE `username` (`username`, `mail_host`);
|
||||
|
||||
ALTER TABLE `contacts` MODIFY `email` varchar(255) NOT NULL;
|
||||
|
||||
TRUNCATE TABLE `messages`;
|
8
data/web/rc/SQL/mysql/2011011200.sql
Normal file
8
data/web/rc/SQL/mysql/2011011200.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
-- Updates from version 0.5.x
|
||||
|
||||
ALTER TABLE `contacts` ADD `words` TEXT NULL AFTER `vcard`;
|
||||
ALTER TABLE `contacts` CHANGE `vcard` `vcard` LONGTEXT /*!40101 CHARACTER SET utf8 */ NULL DEFAULT NULL;
|
||||
ALTER TABLE `contactgroupmembers` ADD INDEX `contactgroupmembers_contact_index` (`contact_id`);
|
||||
|
||||
TRUNCATE TABLE `messages`;
|
||||
TRUNCATE TABLE `cache`;
|
67
data/web/rc/SQL/mysql/2011092800.sql
Normal file
67
data/web/rc/SQL/mysql/2011092800.sql
Normal file
@@ -0,0 +1,67 @@
|
||||
-- Updates from version 0.6
|
||||
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
|
||||
|
||||
ALTER TABLE `users` CHANGE `alias` `alias` varchar(128) BINARY NOT NULL;
|
||||
ALTER TABLE `users` CHANGE `username` `username` varchar(128) BINARY NOT NULL;
|
||||
|
||||
CREATE TABLE `dictionary` (
|
||||
`user_id` int(10) UNSIGNED DEFAULT NULL,
|
||||
`language` varchar(5) NOT NULL,
|
||||
`data` longtext NOT NULL,
|
||||
CONSTRAINT `user_id_fk_dictionary` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
UNIQUE `uniqueness` (`user_id`, `language`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
CREATE TABLE `searches` (
|
||||
`search_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`type` int(3) NOT NULL DEFAULT '0',
|
||||
`name` varchar(128) NOT NULL,
|
||||
`data` text,
|
||||
PRIMARY KEY(`search_id`),
|
||||
CONSTRAINT `user_id_fk_searches` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
UNIQUE `uniqueness` (`user_id`, `type`, `name`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
DROP TABLE `messages`;
|
||||
|
||||
CREATE TABLE `cache_index` (
|
||||
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`mailbox` varchar(255) BINARY NOT NULL,
|
||||
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
`valid` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`data` longtext NOT NULL,
|
||||
CONSTRAINT `user_id_fk_cache_index` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
INDEX `changed_index` (`changed`),
|
||||
PRIMARY KEY (`user_id`, `mailbox`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
CREATE TABLE `cache_thread` (
|
||||
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`mailbox` varchar(255) BINARY NOT NULL,
|
||||
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
`data` longtext NOT NULL,
|
||||
CONSTRAINT `user_id_fk_cache_thread` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
INDEX `changed_index` (`changed`),
|
||||
PRIMARY KEY (`user_id`, `mailbox`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
CREATE TABLE `cache_messages` (
|
||||
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`mailbox` varchar(255) BINARY NOT NULL,
|
||||
`uid` int(11) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
`data` longtext NOT NULL,
|
||||
`flags` int(11) NOT NULL DEFAULT '0',
|
||||
CONSTRAINT `user_id_fk_cache_messages` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
INDEX `changed_index` (`changed`),
|
||||
PRIMARY KEY (`user_id`, `mailbox`, `uid`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
|
3
data/web/rc/SQL/mysql/2011111600.sql
Normal file
3
data/web/rc/SQL/mysql/2011111600.sql
Normal file
@@ -0,0 +1,3 @@
|
||||
-- Updates from version 0.7-beta
|
||||
|
||||
ALTER TABLE `session` CHANGE `sess_id` `sess_id` varchar(128) NOT NULL;
|
22
data/web/rc/SQL/mysql/2011121400.sql
Normal file
22
data/web/rc/SQL/mysql/2011121400.sql
Normal file
@@ -0,0 +1,22 @@
|
||||
-- Updates from version 0.7
|
||||
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
|
||||
|
||||
ALTER TABLE `contacts` DROP FOREIGN KEY `user_id_fk_contacts`;
|
||||
ALTER TABLE `contacts` DROP INDEX `user_contacts_index`;
|
||||
ALTER TABLE `contacts` MODIFY `email` text NOT NULL;
|
||||
ALTER TABLE `contacts` ADD INDEX `user_contacts_index` (`user_id`,`del`);
|
||||
ALTER TABLE `contacts` ADD CONSTRAINT `user_id_fk_contacts` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
ALTER TABLE `cache` ALTER `user_id` DROP DEFAULT;
|
||||
ALTER TABLE `cache_index` ALTER `user_id` DROP DEFAULT;
|
||||
ALTER TABLE `cache_thread` ALTER `user_id` DROP DEFAULT;
|
||||
ALTER TABLE `cache_messages` ALTER `user_id` DROP DEFAULT;
|
||||
ALTER TABLE `contacts` ALTER `user_id` DROP DEFAULT;
|
||||
ALTER TABLE `contactgroups` ALTER `user_id` DROP DEFAULT;
|
||||
ALTER TABLE `contactgroupmembers` ALTER `contact_id` DROP DEFAULT;
|
||||
ALTER TABLE `identities` ALTER `user_id` DROP DEFAULT;
|
||||
ALTER TABLE `searches` ALTER `user_id` DROP DEFAULT;
|
||||
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
|
5
data/web/rc/SQL/mysql/2012080700.sql
Normal file
5
data/web/rc/SQL/mysql/2012080700.sql
Normal file
@@ -0,0 +1,5 @@
|
||||
-- Updates from version 0.8
|
||||
|
||||
ALTER TABLE `cache` DROP COLUMN `cache_id`;
|
||||
ALTER TABLE `users` DROP COLUMN `alias`;
|
||||
ALTER TABLE `identities` ADD INDEX `email_identities_index` (`email`, `del`);
|
7
data/web/rc/SQL/mysql/2013011000.sql
Normal file
7
data/web/rc/SQL/mysql/2013011000.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
-- Upgrade from 0.9-beta
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `system` (
|
||||
`name` varchar(64) NOT NULL,
|
||||
`value` mediumtext,
|
||||
PRIMARY KEY(`name`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
1
data/web/rc/SQL/mysql/2013042700.sql
Normal file
1
data/web/rc/SQL/mysql/2013042700.sql
Normal file
@@ -0,0 +1 @@
|
||||
-- empty
|
7
data/web/rc/SQL/mysql/2013052500.sql
Normal file
7
data/web/rc/SQL/mysql/2013052500.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
CREATE TABLE `cache_shared` (
|
||||
`cache_key` varchar(255) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL,
|
||||
`created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
|
||||
`data` longtext NOT NULL,
|
||||
INDEX `created_index` (`created`),
|
||||
INDEX `cache_key_index` (`cache_key`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
24
data/web/rc/SQL/mysql/2013061000.sql
Normal file
24
data/web/rc/SQL/mysql/2013061000.sql
Normal file
@@ -0,0 +1,24 @@
|
||||
ALTER TABLE `cache` ADD `expires` datetime DEFAULT NULL;
|
||||
ALTER TABLE `cache_shared` ADD `expires` datetime DEFAULT NULL;
|
||||
ALTER TABLE `cache_index` ADD `expires` datetime DEFAULT NULL;
|
||||
ALTER TABLE `cache_thread` ADD `expires` datetime DEFAULT NULL;
|
||||
ALTER TABLE `cache_messages` ADD `expires` datetime DEFAULT NULL;
|
||||
|
||||
-- initialize expires column with created/changed date + 7days
|
||||
UPDATE `cache` SET `expires` = `created` + interval 604800 second;
|
||||
UPDATE `cache_shared` SET `expires` = `created` + interval 604800 second;
|
||||
UPDATE `cache_index` SET `expires` = `changed` + interval 604800 second;
|
||||
UPDATE `cache_thread` SET `expires` = `changed` + interval 604800 second;
|
||||
UPDATE `cache_messages` SET `expires` = `changed` + interval 604800 second;
|
||||
|
||||
ALTER TABLE `cache` DROP INDEX `created_index`;
|
||||
ALTER TABLE `cache_shared` DROP INDEX `created_index`;
|
||||
ALTER TABLE `cache_index` DROP `changed`;
|
||||
ALTER TABLE `cache_thread` DROP `changed`;
|
||||
ALTER TABLE `cache_messages` DROP `changed`;
|
||||
|
||||
ALTER TABLE `cache` ADD INDEX `expires_index` (`expires`);
|
||||
ALTER TABLE `cache_shared` ADD INDEX `expires_index` (`expires`);
|
||||
ALTER TABLE `cache_index` ADD INDEX `expires_index` (`expires`);
|
||||
ALTER TABLE `cache_thread` ADD INDEX `expires_index` (`expires`);
|
||||
ALTER TABLE `cache_messages` ADD INDEX `expires_index` (`expires`);
|
1
data/web/rc/SQL/mysql/2014042900.sql
Normal file
1
data/web/rc/SQL/mysql/2014042900.sql
Normal file
@@ -0,0 +1 @@
|
||||
ALTER TABLE `users` CHANGE `preferences` `preferences` longtext;
|
1
data/web/rc/SQL/mysql/2015030800.sql
Normal file
1
data/web/rc/SQL/mysql/2015030800.sql
Normal file
@@ -0,0 +1 @@
|
||||
ALTER TABLE `identities` CHANGE `signature` `signature` longtext;
|
3
data/web/rc/SQL/mysql/2015111100.sql
Normal file
3
data/web/rc/SQL/mysql/2015111100.sql
Normal file
@@ -0,0 +1,3 @@
|
||||
ALTER TABLE `users`
|
||||
ADD `failed_login` datetime DEFAULT NULL,
|
||||
ADD `failed_login_counter` int(10) UNSIGNED DEFAULT NULL;
|
1
data/web/rc/SQL/mysql/2016081200.sql
Normal file
1
data/web/rc/SQL/mysql/2016081200.sql
Normal file
@@ -0,0 +1 @@
|
||||
ALTER TABLE `session` DROP COLUMN `created`;
|
1
data/web/rc/SQL/mysql/2016100900.sql
Normal file
1
data/web/rc/SQL/mysql/2016100900.sql
Normal file
@@ -0,0 +1 @@
|
||||
ALTER TABLE `session` MODIFY `ip` varchar(40) NOT NULL;
|
24
data/web/rc/SQL/mysql/2016112200.sql
Normal file
24
data/web/rc/SQL/mysql/2016112200.sql
Normal file
@@ -0,0 +1,24 @@
|
||||
ALTER TABLE `dictionary` ADD COLUMN `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST; -- redundant, for compat. with Galera Cluster
|
||||
|
||||
DROP TABLE `cache`;
|
||||
DROP TABLE `cache_shared`;
|
||||
|
||||
CREATE TABLE `cache` (
|
||||
`user_id` int(10) UNSIGNED NOT NULL,
|
||||
`cache_key` varchar(128) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL,
|
||||
`expires` datetime DEFAULT NULL,
|
||||
`data` longtext NOT NULL,
|
||||
PRIMARY KEY (`user_id`, `cache_key`),
|
||||
CONSTRAINT `user_id_fk_cache` FOREIGN KEY (`user_id`)
|
||||
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
INDEX `expires_index` (`expires`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
|
||||
CREATE TABLE `cache_shared` (
|
||||
`cache_key` varchar(255) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL,
|
||||
`expires` datetime DEFAULT NULL,
|
||||
`data` longtext NOT NULL,
|
||||
PRIMARY KEY (`cache_key`),
|
||||
INDEX `expires_index` (`expires`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
220
data/web/rc/SQL/oracle.initial.sql
Normal file
220
data/web/rc/SQL/oracle.initial.sql
Normal file
@@ -0,0 +1,220 @@
|
||||
-- Roundcube Webmail initial database structure
|
||||
-- This was tested with Oracle 11g
|
||||
|
||||
CREATE TABLE "users" (
|
||||
"user_id" integer PRIMARY KEY,
|
||||
"username" varchar(128) NOT NULL,
|
||||
"mail_host" varchar(128) NOT NULL,
|
||||
"created" timestamp with time zone DEFAULT current_timestamp NOT NULL,
|
||||
"last_login" timestamp with time zone DEFAULT NULL,
|
||||
"failed_login" timestamp with time zone DEFAULT NULL,
|
||||
"failed_login_counter" integer DEFAULT NULL,
|
||||
"language" varchar(5),
|
||||
"preferences" long DEFAULT NULL,
|
||||
CONSTRAINT "users_username_key" UNIQUE ("username", "mail_host")
|
||||
);
|
||||
|
||||
CREATE SEQUENCE "users_seq"
|
||||
START WITH 1 INCREMENT BY 1 NOMAXVALUE;
|
||||
|
||||
CREATE TRIGGER "users_seq_trig"
|
||||
BEFORE INSERT ON "users" FOR EACH ROW
|
||||
BEGIN
|
||||
:NEW."user_id" := "users_seq".nextval;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE "session" (
|
||||
"sess_id" varchar(128) NOT NULL PRIMARY KEY,
|
||||
"changed" timestamp with time zone DEFAULT current_timestamp NOT NULL,
|
||||
"ip" varchar(41) NOT NULL,
|
||||
"vars" long NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX "session_changed_idx" ON "session" ("changed");
|
||||
|
||||
|
||||
CREATE TABLE "identities" (
|
||||
"identity_id" integer PRIMARY KEY,
|
||||
"user_id" integer NOT NULL
|
||||
REFERENCES "users" ("user_id") ON DELETE CASCADE,
|
||||
"changed" timestamp with time zone DEFAULT current_timestamp NOT NULL,
|
||||
"del" smallint DEFAULT 0 NOT NULL,
|
||||
"standard" smallint DEFAULT 0 NOT NULL,
|
||||
"name" varchar(128) NOT NULL,
|
||||
"organization" varchar(128),
|
||||
"email" varchar(128) NOT NULL,
|
||||
"reply-to" varchar(128),
|
||||
"bcc" varchar(128),
|
||||
"signature" long,
|
||||
"html_signature" integer DEFAULT 0 NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX "identities_user_id_idx" ON "identities" ("user_id", "del");
|
||||
CREATE INDEX "identities_email_idx" ON "identities" ("email", "del");
|
||||
|
||||
CREATE SEQUENCE "identities_seq"
|
||||
START WITH 1 INCREMENT BY 1 NOMAXVALUE;
|
||||
|
||||
CREATE TRIGGER "identities_seq_trig"
|
||||
BEFORE INSERT ON "identities" FOR EACH ROW
|
||||
BEGIN
|
||||
:NEW."identity_id" := "identities_seq".nextval;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE "contacts" (
|
||||
"contact_id" integer PRIMARY KEY,
|
||||
"user_id" integer NOT NULL
|
||||
REFERENCES "users" ("user_id") ON DELETE CASCADE,
|
||||
"changed" timestamp with time zone DEFAULT current_timestamp NOT NULL,
|
||||
"del" smallint DEFAULT 0 NOT NULL,
|
||||
"name" varchar(128) DEFAULT NULL,
|
||||
"email" varchar(4000) DEFAULT NULL,
|
||||
"firstname" varchar(128) DEFAULT NULL,
|
||||
"surname" varchar(128) DEFAULT NULL,
|
||||
"vcard" long,
|
||||
"words" varchar(4000)
|
||||
);
|
||||
|
||||
CREATE INDEX "contacts_user_id_idx" ON "contacts" ("user_id", "del");
|
||||
|
||||
CREATE SEQUENCE "contacts_seq"
|
||||
START WITH 1 INCREMENT BY 1 NOMAXVALUE;
|
||||
|
||||
CREATE TRIGGER "contacts_seq_trig"
|
||||
BEFORE INSERT ON "contacts" FOR EACH ROW
|
||||
BEGIN
|
||||
:NEW."contact_id" := "contacts_seq".nextval;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE "contactgroups" (
|
||||
"contactgroup_id" integer PRIMARY KEY,
|
||||
"user_id" integer NOT NULL
|
||||
REFERENCES "users" ("user_id") ON DELETE CASCADE,
|
||||
"changed" timestamp with time zone DEFAULT current_timestamp NOT NULL,
|
||||
"del" smallint DEFAULT 0 NOT NULL,
|
||||
"name" varchar(128) NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX "contactgroups_user_id_idx" ON "contactgroups" ("user_id", "del");
|
||||
|
||||
CREATE SEQUENCE "contactgroups_seq"
|
||||
START WITH 1 INCREMENT BY 1 NOMAXVALUE;
|
||||
|
||||
CREATE TRIGGER "contactgroups_seq_trig"
|
||||
BEFORE INSERT ON "contactgroups" FOR EACH ROW
|
||||
BEGIN
|
||||
:NEW."contactgroup_id" := "contactgroups_seq".nextval;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE "contactgroupmembers" (
|
||||
"contactgroup_id" integer NOT NULL
|
||||
REFERENCES "contactgroups" ("contactgroup_id") ON DELETE CASCADE,
|
||||
"contact_id" integer NOT NULL
|
||||
REFERENCES "contacts" ("contact_id") ON DELETE CASCADE,
|
||||
"created" timestamp with time zone DEFAULT current_timestamp NOT NULL,
|
||||
PRIMARY KEY ("contactgroup_id", "contact_id")
|
||||
);
|
||||
|
||||
CREATE INDEX "contactgroupmembers_idx" ON "contactgroupmembers" ("contact_id");
|
||||
|
||||
|
||||
CREATE TABLE "cache" (
|
||||
"user_id" integer NOT NULL
|
||||
REFERENCES "users" ("user_id") ON DELETE CASCADE,
|
||||
"cache_key" varchar(128) NOT NULL,
|
||||
"expires" timestamp with time zone DEFAULT NULL,
|
||||
"data" long NOT NULL,
|
||||
PRIMARY KEY ("user_id", "cache_key")
|
||||
);
|
||||
|
||||
CREATE INDEX "cache_expires_idx" ON "cache" ("expires");
|
||||
|
||||
|
||||
CREATE TABLE "cache_shared" (
|
||||
"cache_key" varchar(255) NOT NULL,
|
||||
"expires" timestamp with time zone DEFAULT NULL,
|
||||
"data" long NOT NULL,
|
||||
PRIMARY KEY ("cache_key")
|
||||
);
|
||||
|
||||
CREATE INDEX "cache_shared_expires_idx" ON "cache_shared" ("expires");
|
||||
|
||||
|
||||
CREATE TABLE "cache_index" (
|
||||
"user_id" integer NOT NULL
|
||||
REFERENCES "users" ("user_id") ON DELETE CASCADE,
|
||||
"mailbox" varchar(255) NOT NULL,
|
||||
"expires" timestamp with time zone DEFAULT NULL,
|
||||
"valid" smallint DEFAULT 0 NOT NULL,
|
||||
"data" long NOT NULL,
|
||||
PRIMARY KEY ("user_id", "mailbox")
|
||||
);
|
||||
|
||||
CREATE INDEX "cache_index_expires_idx" ON "cache_index" ("expires");
|
||||
|
||||
|
||||
CREATE TABLE "cache_thread" (
|
||||
"user_id" integer NOT NULL
|
||||
REFERENCES "users" ("user_id") ON DELETE CASCADE,
|
||||
"mailbox" varchar(255) NOT NULL,
|
||||
"expires" timestamp with time zone DEFAULT NULL,
|
||||
"data" long NOT NULL,
|
||||
PRIMARY KEY ("user_id", "mailbox")
|
||||
);
|
||||
|
||||
CREATE INDEX "cache_thread_expires_idx" ON "cache_thread" ("expires");
|
||||
|
||||
|
||||
CREATE TABLE "cache_messages" (
|
||||
"user_id" integer NOT NULL
|
||||
REFERENCES "users" ("user_id") ON DELETE CASCADE,
|
||||
"mailbox" varchar(255) NOT NULL,
|
||||
"uid" integer NOT NULL,
|
||||
"expires" timestamp with time zone DEFAULT NULL,
|
||||
"data" long NOT NULL,
|
||||
"flags" integer DEFAULT 0 NOT NULL,
|
||||
PRIMARY KEY ("user_id", "mailbox", "uid")
|
||||
);
|
||||
|
||||
CREATE INDEX "cache_messages_expires_idx" ON "cache_messages" ("expires");
|
||||
|
||||
|
||||
CREATE TABLE "dictionary" (
|
||||
"user_id" integer DEFAULT NULL
|
||||
REFERENCES "users" ("user_id") ON DELETE CASCADE,
|
||||
"language" varchar(5) NOT NULL,
|
||||
"data" long DEFAULT NULL,
|
||||
CONSTRAINT "dictionary_user_id_lang_key" UNIQUE ("user_id", "language")
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE "searches" (
|
||||
"search_id" integer PRIMARY KEY,
|
||||
"user_id" integer NOT NULL
|
||||
REFERENCES "users" ("user_id") ON DELETE CASCADE,
|
||||
"type" smallint DEFAULT 0 NOT NULL,
|
||||
"name" varchar(128) NOT NULL,
|
||||
"data" long NOT NULL,
|
||||
CONSTRAINT "searches_user_id_key" UNIQUE ("user_id", "type", "name")
|
||||
);
|
||||
|
||||
CREATE SEQUENCE "searches_seq"
|
||||
START WITH 1 INCREMENT BY 1 NOMAXVALUE;
|
||||
|
||||
CREATE TRIGGER "searches_seq_trig"
|
||||
BEFORE INSERT ON "searches" FOR EACH ROW
|
||||
BEGIN
|
||||
:NEW."search_id" := "searches_seq".nextval;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE "system" (
|
||||
"name" varchar(64) NOT NULL PRIMARY KEY,
|
||||
"value" long
|
||||
);
|
||||
|
||||
INSERT INTO "system" ("name", "value") VALUES ('roundcube-version', '2016112200');
|
1
data/web/rc/SQL/oracle/2015030800.sql
Normal file
1
data/web/rc/SQL/oracle/2015030800.sql
Normal file
@@ -0,0 +1 @@
|
||||
-- empty
|
2
data/web/rc/SQL/oracle/2015111100.sql
Normal file
2
data/web/rc/SQL/oracle/2015111100.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE "users" ADD "failed_login" timestamp with time zone DEFAULT NULL;
|
||||
ALTER TABLE "users" ADD "failed_login_counter" integer DEFAULT NULL;
|
1
data/web/rc/SQL/oracle/2016081200.sql
Normal file
1
data/web/rc/SQL/oracle/2016081200.sql
Normal file
@@ -0,0 +1 @@
|
||||
ALTER TABLE "session" DROP COLUMN "created";
|
1
data/web/rc/SQL/oracle/2016100900.sql
Normal file
1
data/web/rc/SQL/oracle/2016100900.sql
Normal file
@@ -0,0 +1 @@
|
||||
ALTER TABLE "session" MODIFY "ip" varchar(41) NOT NULL;
|
23
data/web/rc/SQL/oracle/2016112200.sql
Normal file
23
data/web/rc/SQL/oracle/2016112200.sql
Normal file
@@ -0,0 +1,23 @@
|
||||
DROP TABLE "cache";
|
||||
DROP TABLE "cache_shared";
|
||||
|
||||
CREATE TABLE "cache" (
|
||||
"user_id" integer NOT NULL
|
||||
REFERENCES "users" ("user_id") ON DELETE CASCADE,
|
||||
"cache_key" varchar(128) NOT NULL,
|
||||
"expires" timestamp with time zone DEFAULT NULL,
|
||||
"data" long NOT NULL,
|
||||
PRIMARY KEY ("user_id", "cache_key")
|
||||
);
|
||||
|
||||
CREATE INDEX "cache_expires_idx" ON "cache" ("expires");
|
||||
|
||||
|
||||
CREATE TABLE "cache_shared" (
|
||||
"cache_key" varchar(255) NOT NULL,
|
||||
"expires" timestamp with time zone DEFAULT NULL,
|
||||
"data" long NOT NULL,
|
||||
PRIMARY KEY ("cache_key")
|
||||
);
|
||||
|
||||
CREATE INDEX "cache_shared_expires_idx" ON "cache_shared" ("expires");
|
291
data/web/rc/SQL/postgres.initial.sql
Normal file
291
data/web/rc/SQL/postgres.initial.sql
Normal file
@@ -0,0 +1,291 @@
|
||||
-- Roundcube Webmail initial database structure
|
||||
|
||||
--
|
||||
-- Sequence "users_seq"
|
||||
-- Name: users_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE SEQUENCE users_seq
|
||||
INCREMENT BY 1
|
||||
NO MAXVALUE
|
||||
NO MINVALUE
|
||||
CACHE 1;
|
||||
|
||||
--
|
||||
-- Table "users"
|
||||
-- Name: users; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE users (
|
||||
user_id integer DEFAULT nextval('users_seq'::text) PRIMARY KEY,
|
||||
username varchar(128) DEFAULT '' NOT NULL,
|
||||
mail_host varchar(128) DEFAULT '' NOT NULL,
|
||||
created timestamp with time zone DEFAULT now() NOT NULL,
|
||||
last_login timestamp with time zone DEFAULT NULL,
|
||||
failed_login timestamp with time zone DEFAULT NULL,
|
||||
failed_login_counter integer DEFAULT NULL,
|
||||
"language" varchar(5),
|
||||
preferences text DEFAULT ''::text NOT NULL,
|
||||
CONSTRAINT users_username_key UNIQUE (username, mail_host)
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- Table "session"
|
||||
-- Name: session; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE "session" (
|
||||
sess_id varchar(128) DEFAULT '' PRIMARY KEY,
|
||||
changed timestamp with time zone DEFAULT now() NOT NULL,
|
||||
ip varchar(41) NOT NULL,
|
||||
vars text NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX session_changed_idx ON session (changed);
|
||||
|
||||
|
||||
--
|
||||
-- Sequence "identities_seq"
|
||||
-- Name: identities_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE SEQUENCE identities_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MAXVALUE
|
||||
NO MINVALUE
|
||||
CACHE 1;
|
||||
|
||||
--
|
||||
-- Table "identities"
|
||||
-- Name: identities; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE identities (
|
||||
identity_id integer DEFAULT nextval('identities_seq'::text) PRIMARY KEY,
|
||||
user_id integer NOT NULL
|
||||
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
changed timestamp with time zone DEFAULT now() NOT NULL,
|
||||
del smallint DEFAULT 0 NOT NULL,
|
||||
standard smallint DEFAULT 0 NOT NULL,
|
||||
name varchar(128) NOT NULL,
|
||||
organization varchar(128),
|
||||
email varchar(128) NOT NULL,
|
||||
"reply-to" varchar(128),
|
||||
bcc varchar(128),
|
||||
signature text,
|
||||
html_signature integer DEFAULT 0 NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX identities_user_id_idx ON identities (user_id, del);
|
||||
CREATE INDEX identities_email_idx ON identities (email, del);
|
||||
|
||||
|
||||
--
|
||||
-- Sequence "contacts_seq"
|
||||
-- Name: contacts_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE SEQUENCE contacts_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MAXVALUE
|
||||
NO MINVALUE
|
||||
CACHE 1;
|
||||
|
||||
--
|
||||
-- Table "contacts"
|
||||
-- Name: contacts; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE contacts (
|
||||
contact_id integer DEFAULT nextval('contacts_seq'::text) PRIMARY KEY,
|
||||
user_id integer NOT NULL
|
||||
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
changed timestamp with time zone DEFAULT now() NOT NULL,
|
||||
del smallint DEFAULT 0 NOT NULL,
|
||||
name varchar(128) DEFAULT '' NOT NULL,
|
||||
email text DEFAULT '' NOT NULL,
|
||||
firstname varchar(128) DEFAULT '' NOT NULL,
|
||||
surname varchar(128) DEFAULT '' NOT NULL,
|
||||
vcard text,
|
||||
words text
|
||||
);
|
||||
|
||||
CREATE INDEX contacts_user_id_idx ON contacts (user_id, del);
|
||||
|
||||
--
|
||||
-- Sequence "contactgroups_seq"
|
||||
-- Name: contactgroups_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE SEQUENCE contactgroups_seq
|
||||
INCREMENT BY 1
|
||||
NO MAXVALUE
|
||||
NO MINVALUE
|
||||
CACHE 1;
|
||||
|
||||
--
|
||||
-- Table "contactgroups"
|
||||
-- Name: contactgroups; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE contactgroups (
|
||||
contactgroup_id integer DEFAULT nextval('contactgroups_seq'::text) PRIMARY KEY,
|
||||
user_id integer NOT NULL
|
||||
REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
changed timestamp with time zone DEFAULT now() NOT NULL,
|
||||
del smallint NOT NULL DEFAULT 0,
|
||||
name varchar(128) NOT NULL DEFAULT ''
|
||||
);
|
||||
|
||||
CREATE INDEX contactgroups_user_id_idx ON contactgroups (user_id, del);
|
||||
|
||||
--
|
||||
-- Table "contactgroupmembers"
|
||||
-- Name: contactgroupmembers; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE contactgroupmembers (
|
||||
contactgroup_id integer NOT NULL
|
||||
REFERENCES contactgroups(contactgroup_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
contact_id integer NOT NULL
|
||||
REFERENCES contacts(contact_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
created timestamp with time zone DEFAULT now() NOT NULL,
|
||||
PRIMARY KEY (contactgroup_id, contact_id)
|
||||
);
|
||||
|
||||
CREATE INDEX contactgroupmembers_contact_id_idx ON contactgroupmembers (contact_id);
|
||||
|
||||
--
|
||||
-- Table "cache"
|
||||
-- Name: cache; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE "cache" (
|
||||
user_id integer NOT NULL
|
||||
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
cache_key varchar(128) DEFAULT '' NOT NULL,
|
||||
expires timestamp with time zone DEFAULT NULL,
|
||||
data text NOT NULL,
|
||||
PRIMARY KEY (user_id, cache_key)
|
||||
);
|
||||
|
||||
CREATE INDEX cache_expires_idx ON "cache" (expires);
|
||||
|
||||
--
|
||||
-- Table "cache_shared"
|
||||
-- Name: cache_shared; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE "cache_shared" (
|
||||
cache_key varchar(255) NOT NULL PRIMARY KEY,
|
||||
expires timestamp with time zone DEFAULT NULL,
|
||||
data text NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX cache_shared_expires_idx ON "cache_shared" (expires);
|
||||
|
||||
--
|
||||
-- Table "cache_index"
|
||||
-- Name: cache_index; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE cache_index (
|
||||
user_id integer NOT NULL
|
||||
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
mailbox varchar(255) NOT NULL,
|
||||
expires timestamp with time zone DEFAULT NULL,
|
||||
valid smallint NOT NULL DEFAULT 0,
|
||||
data text NOT NULL,
|
||||
PRIMARY KEY (user_id, mailbox)
|
||||
);
|
||||
|
||||
CREATE INDEX cache_index_expires_idx ON cache_index (expires);
|
||||
|
||||
--
|
||||
-- Table "cache_thread"
|
||||
-- Name: cache_thread; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE cache_thread (
|
||||
user_id integer NOT NULL
|
||||
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
mailbox varchar(255) NOT NULL,
|
||||
expires timestamp with time zone DEFAULT NULL,
|
||||
data text NOT NULL,
|
||||
PRIMARY KEY (user_id, mailbox)
|
||||
);
|
||||
|
||||
CREATE INDEX cache_thread_expires_idx ON cache_thread (expires);
|
||||
|
||||
--
|
||||
-- Table "cache_messages"
|
||||
-- Name: cache_messages; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE cache_messages (
|
||||
user_id integer NOT NULL
|
||||
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
mailbox varchar(255) NOT NULL,
|
||||
uid integer NOT NULL,
|
||||
expires timestamp with time zone DEFAULT NULL,
|
||||
data text NOT NULL,
|
||||
flags integer NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, mailbox, uid)
|
||||
);
|
||||
|
||||
CREATE INDEX cache_messages_expires_idx ON cache_messages (expires);
|
||||
|
||||
--
|
||||
-- Table "dictionary"
|
||||
-- Name: dictionary; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE dictionary (
|
||||
user_id integer DEFAULT NULL
|
||||
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
"language" varchar(5) NOT NULL,
|
||||
data text NOT NULL,
|
||||
CONSTRAINT dictionary_user_id_language_key UNIQUE (user_id, "language")
|
||||
);
|
||||
|
||||
--
|
||||
-- Sequence "searches_seq"
|
||||
-- Name: searches_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE SEQUENCE searches_seq
|
||||
INCREMENT BY 1
|
||||
NO MAXVALUE
|
||||
NO MINVALUE
|
||||
CACHE 1;
|
||||
|
||||
--
|
||||
-- Table "searches"
|
||||
-- Name: searches; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE searches (
|
||||
search_id integer DEFAULT nextval('searches_seq'::text) PRIMARY KEY,
|
||||
user_id integer NOT NULL
|
||||
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
"type" smallint DEFAULT 0 NOT NULL,
|
||||
name varchar(128) NOT NULL,
|
||||
data text NOT NULL,
|
||||
CONSTRAINT searches_user_id_key UNIQUE (user_id, "type", name)
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- Table "system"
|
||||
-- Name: system; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE "system" (
|
||||
name varchar(64) NOT NULL PRIMARY KEY,
|
||||
value text
|
||||
);
|
||||
|
||||
INSERT INTO system (name, value) VALUES ('roundcube-version', '2016112200');
|
18
data/web/rc/SQL/postgres/2008030300.sql
Normal file
18
data/web/rc/SQL/postgres/2008030300.sql
Normal file
@@ -0,0 +1,18 @@
|
||||
-- Updates from version 0.1-stable to 0.1.1
|
||||
|
||||
CREATE INDEX cache_user_id_idx ON cache (user_id, cache_key);
|
||||
CREATE INDEX contacts_user_id_idx ON contacts (user_id);
|
||||
CREATE INDEX identities_user_id_idx ON identities (user_id);
|
||||
|
||||
CREATE INDEX users_username_id_idx ON users (username);
|
||||
CREATE INDEX users_alias_id_idx ON users (alias);
|
||||
|
||||
-- added ON DELETE/UPDATE actions
|
||||
ALTER TABLE messages DROP CONSTRAINT messages_user_id_fkey;
|
||||
ALTER TABLE messages ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE identities DROP CONSTRAINT identities_user_id_fkey;
|
||||
ALTER TABLE identities ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE contacts DROP CONSTRAINT contacts_user_id_fkey;
|
||||
ALTER TABLE contacts ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE cache DROP CONSTRAINT cache_user_id_fkey;
|
||||
ALTER TABLE cache ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
|
3
data/web/rc/SQL/postgres/2008060900.sql
Normal file
3
data/web/rc/SQL/postgres/2008060900.sql
Normal file
@@ -0,0 +1,3 @@
|
||||
-- Updates from version 0.2-alpha
|
||||
|
||||
CREATE INDEX messages_created_idx ON messages (created);
|
14
data/web/rc/SQL/postgres/2008092100.sql
Normal file
14
data/web/rc/SQL/postgres/2008092100.sql
Normal file
@@ -0,0 +1,14 @@
|
||||
-- Updates from version 0.2-beta
|
||||
|
||||
ALTER TABLE cache DROP session_id;
|
||||
|
||||
CREATE INDEX session_changed_idx ON session (changed);
|
||||
CREATE INDEX cache_created_idx ON "cache" (created);
|
||||
|
||||
ALTER TABLE users ALTER "language" DROP NOT NULL;
|
||||
ALTER TABLE users ALTER "language" DROP DEFAULT;
|
||||
|
||||
ALTER TABLE identities ALTER del TYPE smallint;
|
||||
ALTER TABLE identities ALTER standard TYPE smallint;
|
||||
ALTER TABLE contacts ALTER del TYPE smallint;
|
||||
ALTER TABLE messages ALTER del TYPE smallint;
|
6
data/web/rc/SQL/postgres/2009090400.sql
Normal file
6
data/web/rc/SQL/postgres/2009090400.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
-- Updates from version 0.3-stable
|
||||
|
||||
TRUNCATE messages;
|
||||
CREATE INDEX messages_index_idx ON messages (user_id, cache_key, idx);
|
||||
DROP INDEX contacts_user_id_idx;
|
||||
CREATE INDEX contacts_user_id_idx ON contacts (user_id, email);
|
32
data/web/rc/SQL/postgres/2009103100.sql
Normal file
32
data/web/rc/SQL/postgres/2009103100.sql
Normal file
@@ -0,0 +1,32 @@
|
||||
-- Updates from version 0.3.1
|
||||
|
||||
DROP INDEX identities_user_id_idx;
|
||||
CREATE INDEX identities_user_id_idx ON identities (user_id, del);
|
||||
|
||||
ALTER TABLE identities ADD changed timestamp with time zone DEFAULT now() NOT NULL;
|
||||
|
||||
CREATE SEQUENCE contactgroups_ids
|
||||
INCREMENT BY 1
|
||||
NO MAXVALUE
|
||||
NO MINVALUE
|
||||
CACHE 1;
|
||||
|
||||
CREATE TABLE contactgroups (
|
||||
contactgroup_id integer DEFAULT nextval('contactgroups_ids'::text) PRIMARY KEY,
|
||||
user_id integer NOT NULL
|
||||
REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
changed timestamp with time zone DEFAULT now() NOT NULL,
|
||||
del smallint NOT NULL DEFAULT 0,
|
||||
name varchar(128) NOT NULL DEFAULT ''
|
||||
);
|
||||
|
||||
CREATE INDEX contactgroups_user_id_idx ON contactgroups (user_id, del);
|
||||
|
||||
CREATE TABLE contactgroupmembers (
|
||||
contactgroup_id integer NOT NULL
|
||||
REFERENCES contactgroups(contactgroup_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
contact_id integer NOT NULL
|
||||
REFERENCES contacts(contact_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
created timestamp with time zone DEFAULT now() NOT NULL,
|
||||
PRIMARY KEY (contactgroup_id, contact_id)
|
||||
);
|
4
data/web/rc/SQL/postgres/2010042300.sql
Normal file
4
data/web/rc/SQL/postgres/2010042300.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
-- Updates from version 0.4-beta
|
||||
|
||||
ALTER TABLE users ALTER last_login DROP NOT NULL;
|
||||
ALTER TABLE users ALTER last_login SET DEFAULT NULL;
|
7
data/web/rc/SQL/postgres/2010100600.sql
Normal file
7
data/web/rc/SQL/postgres/2010100600.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
-- Updates from version 0.4.2
|
||||
|
||||
DROP INDEX users_username_id_idx;
|
||||
ALTER TABLE users ADD CONSTRAINT users_username_key UNIQUE (username, mail_host);
|
||||
ALTER TABLE contacts ALTER email TYPE varchar(255);
|
||||
|
||||
TRUNCATE messages;
|
7
data/web/rc/SQL/postgres/2011011200.sql
Normal file
7
data/web/rc/SQL/postgres/2011011200.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
-- Updates from version 0.5.x
|
||||
|
||||
ALTER TABLE contacts ADD words TEXT NULL;
|
||||
CREATE INDEX contactgroupmembers_contact_id_idx ON contactgroupmembers (contact_id);
|
||||
|
||||
TRUNCATE messages;
|
||||
TRUNCATE cache;
|
64
data/web/rc/SQL/postgres/2011092800.sql
Normal file
64
data/web/rc/SQL/postgres/2011092800.sql
Normal file
@@ -0,0 +1,64 @@
|
||||
-- Updates from version 0.6
|
||||
|
||||
CREATE TABLE dictionary (
|
||||
user_id integer DEFAULT NULL
|
||||
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
"language" varchar(5) NOT NULL,
|
||||
data text NOT NULL,
|
||||
CONSTRAINT dictionary_user_id_language_key UNIQUE (user_id, "language")
|
||||
);
|
||||
|
||||
CREATE SEQUENCE search_ids
|
||||
INCREMENT BY 1
|
||||
NO MAXVALUE
|
||||
NO MINVALUE
|
||||
CACHE 1;
|
||||
|
||||
CREATE TABLE searches (
|
||||
search_id integer DEFAULT nextval('search_ids'::text) PRIMARY KEY,
|
||||
user_id integer NOT NULL
|
||||
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
"type" smallint DEFAULT 0 NOT NULL,
|
||||
name varchar(128) NOT NULL,
|
||||
data text NOT NULL,
|
||||
CONSTRAINT searches_user_id_key UNIQUE (user_id, "type", name)
|
||||
);
|
||||
|
||||
DROP SEQUENCE message_ids;
|
||||
DROP TABLE messages;
|
||||
|
||||
CREATE TABLE cache_index (
|
||||
user_id integer NOT NULL
|
||||
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
mailbox varchar(255) NOT NULL,
|
||||
changed timestamp with time zone DEFAULT now() NOT NULL,
|
||||
valid smallint NOT NULL DEFAULT 0,
|
||||
data text NOT NULL,
|
||||
PRIMARY KEY (user_id, mailbox)
|
||||
);
|
||||
|
||||
CREATE INDEX cache_index_changed_idx ON cache_index (changed);
|
||||
|
||||
CREATE TABLE cache_thread (
|
||||
user_id integer NOT NULL
|
||||
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
mailbox varchar(255) NOT NULL,
|
||||
changed timestamp with time zone DEFAULT now() NOT NULL,
|
||||
data text NOT NULL,
|
||||
PRIMARY KEY (user_id, mailbox)
|
||||
);
|
||||
|
||||
CREATE INDEX cache_thread_changed_idx ON cache_thread (changed);
|
||||
|
||||
CREATE TABLE cache_messages (
|
||||
user_id integer NOT NULL
|
||||
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
mailbox varchar(255) NOT NULL,
|
||||
uid integer NOT NULL,
|
||||
changed timestamp with time zone DEFAULT now() NOT NULL,
|
||||
data text NOT NULL,
|
||||
flags integer NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (user_id, mailbox, uid)
|
||||
);
|
||||
|
||||
CREATE INDEX cache_messages_changed_idx ON cache_messages (changed);
|
3
data/web/rc/SQL/postgres/2011111600.sql
Normal file
3
data/web/rc/SQL/postgres/2011111600.sql
Normal file
@@ -0,0 +1,3 @@
|
||||
-- Updates from version 0.7-beta
|
||||
|
||||
ALTER TABLE "session" ALTER sess_id TYPE varchar(128);
|
5
data/web/rc/SQL/postgres/2011121400.sql
Normal file
5
data/web/rc/SQL/postgres/2011121400.sql
Normal file
@@ -0,0 +1,5 @@
|
||||
-- Updates from version 0.7
|
||||
|
||||
DROP INDEX contacts_user_id_idx;
|
||||
CREATE INDEX contacts_user_id_idx ON contacts USING btree (user_id, del);
|
||||
ALTER TABLE contacts ALTER email TYPE text;
|
7
data/web/rc/SQL/postgres/2012080700.sql
Normal file
7
data/web/rc/SQL/postgres/2012080700.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
-- Updates from version 0.8
|
||||
|
||||
ALTER TABLE cache DROP COLUMN cache_id;
|
||||
DROP SEQUENCE cache_ids;
|
||||
|
||||
ALTER TABLE users DROP COLUMN alias;
|
||||
CREATE INDEX identities_email_idx ON identities (email, del);
|
4
data/web/rc/SQL/postgres/2013011000.sql
Normal file
4
data/web/rc/SQL/postgres/2013011000.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
CREATE TABLE "system" (
|
||||
name varchar(64) NOT NULL PRIMARY KEY,
|
||||
value text
|
||||
);
|
14
data/web/rc/SQL/postgres/2013042700.sql
Normal file
14
data/web/rc/SQL/postgres/2013042700.sql
Normal file
@@ -0,0 +1,14 @@
|
||||
ALTER SEQUENCE user_ids RENAME TO users_seq;
|
||||
ALTER TABLE users ALTER COLUMN user_id SET DEFAULT nextval('users_seq'::text);
|
||||
|
||||
ALTER SEQUENCE identity_ids RENAME TO identities_seq;
|
||||
ALTER TABLE identities ALTER COLUMN identity_id SET DEFAULT nextval('identities_seq'::text);
|
||||
|
||||
ALTER SEQUENCE contact_ids RENAME TO contacts_seq;
|
||||
ALTER TABLE contacts ALTER COLUMN contact_id SET DEFAULT nextval('contacts_seq'::text);
|
||||
|
||||
ALTER SEQUENCE contactgroups_ids RENAME TO contactgroups_seq;
|
||||
ALTER TABLE contactgroups ALTER COLUMN contactgroup_id SET DEFAULT nextval('contactgroups_seq'::text);
|
||||
|
||||
ALTER SEQUENCE search_ids RENAME TO searches_seq;
|
||||
ALTER TABLE searches ALTER COLUMN search_id SET DEFAULT nextval('searches_seq'::text);
|
8
data/web/rc/SQL/postgres/2013052500.sql
Normal file
8
data/web/rc/SQL/postgres/2013052500.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
CREATE TABLE "cache_shared" (
|
||||
cache_key varchar(255) NOT NULL,
|
||||
created timestamp with time zone DEFAULT now() NOT NULL,
|
||||
data text NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX cache_shared_cache_key_idx ON "cache_shared" (cache_key);
|
||||
CREATE INDEX cache_shared_created_idx ON "cache_shared" (created);
|
24
data/web/rc/SQL/postgres/2013061000.sql
Normal file
24
data/web/rc/SQL/postgres/2013061000.sql
Normal file
@@ -0,0 +1,24 @@
|
||||
ALTER TABLE "cache" ADD expires timestamp with time zone DEFAULT NULL;
|
||||
ALTER TABLE "cache_shared" ADD expires timestamp with time zone DEFAULT NULL;
|
||||
ALTER TABLE "cache_index" ADD expires timestamp with time zone DEFAULT NULL;
|
||||
ALTER TABLE "cache_thread" ADD expires timestamp with time zone DEFAULT NULL;
|
||||
ALTER TABLE "cache_messages" ADD expires timestamp with time zone DEFAULT NULL;
|
||||
|
||||
-- initialize expires column with created/changed date + 7days
|
||||
UPDATE "cache" SET expires = created + interval '604800 seconds';
|
||||
UPDATE "cache_shared" SET expires = created + interval '604800 seconds';
|
||||
UPDATE "cache_index" SET expires = changed + interval '604800 seconds';
|
||||
UPDATE "cache_thread" SET expires = changed + interval '604800 seconds';
|
||||
UPDATE "cache_messages" SET expires = changed + interval '604800 seconds';
|
||||
|
||||
DROP INDEX cache_created_idx;
|
||||
DROP INDEX cache_shared_created_idx;
|
||||
ALTER TABLE "cache_index" DROP "changed";
|
||||
ALTER TABLE "cache_thread" DROP "changed";
|
||||
ALTER TABLE "cache_messages" DROP "changed";
|
||||
|
||||
CREATE INDEX cache_expires_idx ON "cache" (expires);
|
||||
CREATE INDEX cache_shared_expires_idx ON "cache_shared" (expires);
|
||||
CREATE INDEX cache_index_expires_idx ON "cache_index" (expires);
|
||||
CREATE INDEX cache_thread_expires_idx ON "cache_thread" (expires);
|
||||
CREATE INDEX cache_messages_expires_idx ON "cache_messages" (expires);
|
1
data/web/rc/SQL/postgres/2014042900.sql
Normal file
1
data/web/rc/SQL/postgres/2014042900.sql
Normal file
@@ -0,0 +1 @@
|
||||
-- empty
|
1
data/web/rc/SQL/postgres/2015030800.sql
Normal file
1
data/web/rc/SQL/postgres/2015030800.sql
Normal file
@@ -0,0 +1 @@
|
||||
-- empty
|
2
data/web/rc/SQL/postgres/2015111100.sql
Normal file
2
data/web/rc/SQL/postgres/2015111100.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE "users" ADD failed_login timestamp with time zone DEFAULT NULL;
|
||||
ALTER TABLE "users" ADD failed_login_counter integer DEFAULT NULL;
|
1
data/web/rc/SQL/postgres/2016081200.sql
Normal file
1
data/web/rc/SQL/postgres/2016081200.sql
Normal file
@@ -0,0 +1 @@
|
||||
ALTER TABLE "session" DROP COLUMN created;
|
1
data/web/rc/SQL/postgres/2016100900.sql
Normal file
1
data/web/rc/SQL/postgres/2016100900.sql
Normal file
@@ -0,0 +1 @@
|
||||
ALTER TABLE session ALTER COLUMN ip TYPE character varying(41);
|
21
data/web/rc/SQL/postgres/2016112200.sql
Normal file
21
data/web/rc/SQL/postgres/2016112200.sql
Normal file
@@ -0,0 +1,21 @@
|
||||
DROP TABLE "cache";
|
||||
DROP TABLE "cache_shared";
|
||||
|
||||
CREATE TABLE "cache" (
|
||||
user_id integer NOT NULL
|
||||
REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
cache_key varchar(128) DEFAULT '' NOT NULL,
|
||||
expires timestamp with time zone DEFAULT NULL,
|
||||
data text NOT NULL,
|
||||
PRIMARY KEY (user_id, cache_key)
|
||||
);
|
||||
|
||||
CREATE INDEX cache_expires_idx ON "cache" (expires);
|
||||
|
||||
CREATE TABLE "cache_shared" (
|
||||
cache_key varchar(255) NOT NULL PRIMARY KEY,
|
||||
expires timestamp with time zone DEFAULT NULL,
|
||||
data text NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX cache_shared_expires_idx ON "cache_shared" (expires);
|
203
data/web/rc/SQL/sqlite.initial.sql
Normal file
203
data/web/rc/SQL/sqlite.initial.sql
Normal file
@@ -0,0 +1,203 @@
|
||||
-- Roundcube Webmail initial database structure
|
||||
|
||||
--
|
||||
-- Table structure for table contacts and related
|
||||
--
|
||||
|
||||
CREATE TABLE contacts (
|
||||
contact_id integer NOT NULL PRIMARY KEY,
|
||||
user_id integer NOT NULL,
|
||||
changed datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
del tinyint NOT NULL default '0',
|
||||
name varchar(128) NOT NULL default '',
|
||||
email text NOT NULL default '',
|
||||
firstname varchar(128) NOT NULL default '',
|
||||
surname varchar(128) NOT NULL default '',
|
||||
vcard text NOT NULL default '',
|
||||
words text NOT NULL default ''
|
||||
);
|
||||
|
||||
CREATE INDEX ix_contacts_user_id ON contacts(user_id, del);
|
||||
|
||||
|
||||
CREATE TABLE contactgroups (
|
||||
contactgroup_id integer NOT NULL PRIMARY KEY,
|
||||
user_id integer NOT NULL default '0',
|
||||
changed datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
del tinyint NOT NULL default '0',
|
||||
name varchar(128) NOT NULL default ''
|
||||
);
|
||||
|
||||
CREATE INDEX ix_contactgroups_user_id ON contactgroups(user_id, del);
|
||||
|
||||
|
||||
CREATE TABLE contactgroupmembers (
|
||||
contactgroup_id integer NOT NULL,
|
||||
contact_id integer NOT NULL default '0',
|
||||
created datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
PRIMARY KEY (contactgroup_id, contact_id)
|
||||
);
|
||||
|
||||
CREATE INDEX ix_contactgroupmembers_contact_id ON contactgroupmembers (contact_id);
|
||||
|
||||
--
|
||||
-- Table structure for table identities
|
||||
--
|
||||
|
||||
CREATE TABLE identities (
|
||||
identity_id integer NOT NULL PRIMARY KEY,
|
||||
user_id integer NOT NULL default '0',
|
||||
changed datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
del tinyint NOT NULL default '0',
|
||||
standard tinyint NOT NULL default '0',
|
||||
name varchar(128) NOT NULL default '',
|
||||
organization varchar(128) default '',
|
||||
email varchar(128) NOT NULL default '',
|
||||
"reply-to" varchar(128) NOT NULL default '',
|
||||
bcc varchar(128) NOT NULL default '',
|
||||
signature text NOT NULL default '',
|
||||
html_signature tinyint NOT NULL default '0'
|
||||
);
|
||||
|
||||
CREATE INDEX ix_identities_user_id ON identities(user_id, del);
|
||||
CREATE INDEX ix_identities_email ON identities(email, del);
|
||||
|
||||
--
|
||||
-- Table structure for table users
|
||||
--
|
||||
|
||||
CREATE TABLE users (
|
||||
user_id integer NOT NULL PRIMARY KEY,
|
||||
username varchar(128) NOT NULL default '',
|
||||
mail_host varchar(128) NOT NULL default '',
|
||||
created datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
last_login datetime DEFAULT NULL,
|
||||
failed_login datetime DEFAULT NULL,
|
||||
failed_login_counter integer DEFAULT NULL,
|
||||
language varchar(5),
|
||||
preferences text NOT NULL default ''
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX ix_users_username ON users(username, mail_host);
|
||||
|
||||
--
|
||||
-- Table structure for table session
|
||||
--
|
||||
|
||||
CREATE TABLE session (
|
||||
sess_id varchar(128) NOT NULL PRIMARY KEY,
|
||||
changed datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
ip varchar(40) NOT NULL default '',
|
||||
vars text NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX ix_session_changed ON session (changed);
|
||||
|
||||
--
|
||||
-- Table structure for table dictionary
|
||||
--
|
||||
|
||||
CREATE TABLE dictionary (
|
||||
user_id integer DEFAULT NULL,
|
||||
"language" varchar(5) NOT NULL,
|
||||
data text NOT NULL
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX ix_dictionary_user_language ON dictionary (user_id, "language");
|
||||
|
||||
--
|
||||
-- Table structure for table searches
|
||||
--
|
||||
|
||||
CREATE TABLE searches (
|
||||
search_id integer NOT NULL PRIMARY KEY,
|
||||
user_id integer NOT NULL DEFAULT '0',
|
||||
"type" smallint NOT NULL DEFAULT '0',
|
||||
name varchar(128) NOT NULL,
|
||||
data text NOT NULL
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX ix_searches_user_type_name ON searches (user_id, type, name);
|
||||
|
||||
--
|
||||
-- Table structure for table cache
|
||||
--
|
||||
|
||||
CREATE TABLE cache (
|
||||
user_id integer NOT NULL default 0,
|
||||
cache_key varchar(128) NOT NULL default '',
|
||||
expires datetime DEFAULT NULL,
|
||||
data text NOT NULL,
|
||||
PRIMARY KEY (user_id, cache_key)
|
||||
);
|
||||
|
||||
CREATE INDEX ix_cache_expires ON cache(expires);
|
||||
|
||||
--
|
||||
-- Table structure for table cache_shared
|
||||
--
|
||||
|
||||
CREATE TABLE cache_shared (
|
||||
cache_key varchar(255) NOT NULL,
|
||||
expires datetime DEFAULT NULL,
|
||||
data text NOT NULL,
|
||||
PRIMARY KEY (cache_key)
|
||||
);
|
||||
|
||||
CREATE INDEX ix_cache_shared_expires ON cache_shared(expires);
|
||||
|
||||
--
|
||||
-- Table structure for table cache_index
|
||||
--
|
||||
|
||||
CREATE TABLE cache_index (
|
||||
user_id integer NOT NULL,
|
||||
mailbox varchar(255) NOT NULL,
|
||||
expires datetime DEFAULT NULL,
|
||||
valid smallint NOT NULL DEFAULT '0',
|
||||
data text NOT NULL,
|
||||
PRIMARY KEY (user_id, mailbox)
|
||||
);
|
||||
|
||||
CREATE INDEX ix_cache_index_expires ON cache_index (expires);
|
||||
|
||||
--
|
||||
-- Table structure for table cache_thread
|
||||
--
|
||||
|
||||
CREATE TABLE cache_thread (
|
||||
user_id integer NOT NULL,
|
||||
mailbox varchar(255) NOT NULL,
|
||||
expires datetime DEFAULT NULL,
|
||||
data text NOT NULL,
|
||||
PRIMARY KEY (user_id, mailbox)
|
||||
);
|
||||
|
||||
CREATE INDEX ix_cache_thread_expires ON cache_thread (expires);
|
||||
|
||||
--
|
||||
-- Table structure for table cache_messages
|
||||
--
|
||||
|
||||
CREATE TABLE cache_messages (
|
||||
user_id integer NOT NULL,
|
||||
mailbox varchar(255) NOT NULL,
|
||||
uid integer NOT NULL,
|
||||
expires datetime DEFAULT NULL,
|
||||
data text NOT NULL,
|
||||
flags integer NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (user_id, mailbox, uid)
|
||||
);
|
||||
|
||||
CREATE INDEX ix_cache_messages_expires ON cache_messages (expires);
|
||||
|
||||
--
|
||||
-- Table structure for table system
|
||||
--
|
||||
|
||||
CREATE TABLE system (
|
||||
name varchar(64) NOT NULL PRIMARY KEY,
|
||||
value text NOT NULL
|
||||
);
|
||||
|
||||
INSERT INTO system (name, value) VALUES ('roundcube-version', '2016112200');
|
25
data/web/rc/SQL/sqlite/2008030300.sql
Normal file
25
data/web/rc/SQL/sqlite/2008030300.sql
Normal file
@@ -0,0 +1,25 @@
|
||||
-- Updates from version 0.1-stable to 0.1.1
|
||||
|
||||
DROP TABLE messages;
|
||||
|
||||
CREATE TABLE messages (
|
||||
message_id integer NOT NULL PRIMARY KEY,
|
||||
user_id integer NOT NULL default '0',
|
||||
del tinyint NOT NULL default '0',
|
||||
cache_key varchar(128) NOT NULL default '',
|
||||
created datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
idx integer NOT NULL default '0',
|
||||
uid integer NOT NULL default '0',
|
||||
subject varchar(255) NOT NULL default '',
|
||||
"from" varchar(255) NOT NULL default '',
|
||||
"to" varchar(255) NOT NULL default '',
|
||||
"cc" varchar(255) NOT NULL default '',
|
||||
"date" datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
size integer NOT NULL default '0',
|
||||
headers text NOT NULL,
|
||||
structure text
|
||||
);
|
||||
|
||||
CREATE INDEX ix_messages_user_cache_uid ON messages(user_id,cache_key,uid);
|
||||
CREATE INDEX ix_users_username ON users(username);
|
||||
CREATE INDEX ix_users_alias ON users(alias);
|
3
data/web/rc/SQL/sqlite/2008060900.sql
Normal file
3
data/web/rc/SQL/sqlite/2008060900.sql
Normal file
@@ -0,0 +1,3 @@
|
||||
-- Updates from version 0.2-alpha
|
||||
|
||||
CREATE INDEX ix_messages_created ON messages (created);
|
4
data/web/rc/SQL/sqlite/2008092100.sql
Normal file
4
data/web/rc/SQL/sqlite/2008092100.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
-- Updates from version 0.2-beta
|
||||
|
||||
CREATE INDEX ix_session_changed ON session (changed);
|
||||
CREATE INDEX ix_cache_created ON cache (created);
|
8
data/web/rc/SQL/sqlite/2009090400.sql
Normal file
8
data/web/rc/SQL/sqlite/2009090400.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
-- Updates from version 0.3-stable
|
||||
|
||||
DELETE FROM messages;
|
||||
DROP INDEX ix_messages_user_cache_uid;
|
||||
CREATE UNIQUE INDEX ix_messages_user_cache_uid ON messages (user_id,cache_key,uid);
|
||||
CREATE INDEX ix_messages_index ON messages (user_id,cache_key,idx);
|
||||
DROP INDEX ix_contacts_user_id;
|
||||
CREATE INDEX ix_contacts_user_id ON contacts(user_id, email);
|
61
data/web/rc/SQL/sqlite/2009103100.sql
Normal file
61
data/web/rc/SQL/sqlite/2009103100.sql
Normal file
@@ -0,0 +1,61 @@
|
||||
-- Updates from version 0.3.1
|
||||
|
||||
-- ALTER TABLE identities ADD COLUMN changed datetime NOT NULL default '0000-00-00 00:00:00'; --
|
||||
|
||||
CREATE TABLE temp_identities (
|
||||
identity_id integer NOT NULL PRIMARY KEY,
|
||||
user_id integer NOT NULL default '0',
|
||||
standard tinyint NOT NULL default '0',
|
||||
name varchar(128) NOT NULL default '',
|
||||
organization varchar(128) default '',
|
||||
email varchar(128) NOT NULL default '',
|
||||
"reply-to" varchar(128) NOT NULL default '',
|
||||
bcc varchar(128) NOT NULL default '',
|
||||
signature text NOT NULL default '',
|
||||
html_signature tinyint NOT NULL default '0'
|
||||
);
|
||||
INSERT INTO temp_identities (identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature)
|
||||
SELECT identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature
|
||||
FROM identities WHERE del=0;
|
||||
|
||||
DROP INDEX ix_identities_user_id;
|
||||
DROP TABLE identities;
|
||||
|
||||
CREATE TABLE identities (
|
||||
identity_id integer NOT NULL PRIMARY KEY,
|
||||
user_id integer NOT NULL default '0',
|
||||
changed datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
del tinyint NOT NULL default '0',
|
||||
standard tinyint NOT NULL default '0',
|
||||
name varchar(128) NOT NULL default '',
|
||||
organization varchar(128) default '',
|
||||
email varchar(128) NOT NULL default '',
|
||||
"reply-to" varchar(128) NOT NULL default '',
|
||||
bcc varchar(128) NOT NULL default '',
|
||||
signature text NOT NULL default '',
|
||||
html_signature tinyint NOT NULL default '0'
|
||||
);
|
||||
CREATE INDEX ix_identities_user_id ON identities(user_id, del);
|
||||
|
||||
INSERT INTO identities (identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature)
|
||||
SELECT identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature
|
||||
FROM temp_identities;
|
||||
|
||||
DROP TABLE temp_identities;
|
||||
|
||||
CREATE TABLE contactgroups (
|
||||
contactgroup_id integer NOT NULL PRIMARY KEY,
|
||||
user_id integer NOT NULL default '0',
|
||||
changed datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
del tinyint NOT NULL default '0',
|
||||
name varchar(128) NOT NULL default ''
|
||||
);
|
||||
|
||||
CREATE INDEX ix_contactgroups_user_id ON contactgroups(user_id, del);
|
||||
|
||||
CREATE TABLE contactgroupmembers (
|
||||
contactgroup_id integer NOT NULL,
|
||||
contact_id integer NOT NULL default '0',
|
||||
created datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
PRIMARY KEY (contactgroup_id, contact_id)
|
||||
);
|
35
data/web/rc/SQL/sqlite/2010042300.sql
Normal file
35
data/web/rc/SQL/sqlite/2010042300.sql
Normal file
@@ -0,0 +1,35 @@
|
||||
-- Updates from version 0.4-beta
|
||||
|
||||
CREATE TABLE tmp_users (
|
||||
user_id integer NOT NULL PRIMARY KEY,
|
||||
username varchar(128) NOT NULL default '',
|
||||
mail_host varchar(128) NOT NULL default '',
|
||||
alias varchar(128) NOT NULL default '',
|
||||
created datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
last_login datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
language varchar(5),
|
||||
preferences text NOT NULL default ''
|
||||
);
|
||||
|
||||
INSERT INTO tmp_users (user_id, username, mail_host, alias, created, last_login, language, preferences)
|
||||
SELECT user_id, username, mail_host, alias, created, last_login, language, preferences FROM users;
|
||||
|
||||
DROP TABLE users;
|
||||
|
||||
CREATE TABLE users (
|
||||
user_id integer NOT NULL PRIMARY KEY,
|
||||
username varchar(128) NOT NULL default '',
|
||||
mail_host varchar(128) NOT NULL default '',
|
||||
alias varchar(128) NOT NULL default '',
|
||||
created datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
last_login datetime DEFAULT NULL,
|
||||
language varchar(5),
|
||||
preferences text NOT NULL default ''
|
||||
);
|
||||
|
||||
INSERT INTO users (user_id, username, mail_host, alias, created, last_login, language, preferences)
|
||||
SELECT user_id, username, mail_host, alias, created, last_login, language, preferences FROM tmp_users;
|
||||
|
||||
CREATE INDEX ix_users_username ON users(username);
|
||||
CREATE INDEX ix_users_alias ON users(alias);
|
||||
DROP TABLE tmp_users;
|
40
data/web/rc/SQL/sqlite/2010100600.sql
Normal file
40
data/web/rc/SQL/sqlite/2010100600.sql
Normal file
@@ -0,0 +1,40 @@
|
||||
-- Updates from version 0.4.2
|
||||
|
||||
DROP INDEX ix_users_username;
|
||||
CREATE UNIQUE INDEX ix_users_username ON users(username, mail_host);
|
||||
|
||||
CREATE TABLE contacts_tmp (
|
||||
contact_id integer NOT NULL PRIMARY KEY,
|
||||
user_id integer NOT NULL default '0',
|
||||
changed datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
del tinyint NOT NULL default '0',
|
||||
name varchar(128) NOT NULL default '',
|
||||
email varchar(255) NOT NULL default '',
|
||||
firstname varchar(128) NOT NULL default '',
|
||||
surname varchar(128) NOT NULL default '',
|
||||
vcard text NOT NULL default ''
|
||||
);
|
||||
|
||||
INSERT INTO contacts_tmp (contact_id, user_id, changed, del, name, email, firstname, surname, vcard)
|
||||
SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts;
|
||||
|
||||
DROP TABLE contacts;
|
||||
CREATE TABLE contacts (
|
||||
contact_id integer NOT NULL PRIMARY KEY,
|
||||
user_id integer NOT NULL default '0',
|
||||
changed datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
del tinyint NOT NULL default '0',
|
||||
name varchar(128) NOT NULL default '',
|
||||
email varchar(255) NOT NULL default '',
|
||||
firstname varchar(128) NOT NULL default '',
|
||||
surname varchar(128) NOT NULL default '',
|
||||
vcard text NOT NULL default ''
|
||||
);
|
||||
|
||||
INSERT INTO contacts (contact_id, user_id, changed, del, name, email, firstname, surname, vcard)
|
||||
SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts_tmp;
|
||||
|
||||
CREATE INDEX ix_contacts_user_id ON contacts(user_id, email);
|
||||
DROP TABLE contacts_tmp;
|
||||
|
||||
DELETE FROM messages;
|
41
data/web/rc/SQL/sqlite/2011011200.sql
Normal file
41
data/web/rc/SQL/sqlite/2011011200.sql
Normal file
@@ -0,0 +1,41 @@
|
||||
-- Updates from version 0.5.x
|
||||
|
||||
CREATE TABLE contacts_tmp (
|
||||
contact_id integer NOT NULL PRIMARY KEY,
|
||||
user_id integer NOT NULL default '0',
|
||||
changed datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
del tinyint NOT NULL default '0',
|
||||
name varchar(128) NOT NULL default '',
|
||||
email varchar(255) NOT NULL default '',
|
||||
firstname varchar(128) NOT NULL default '',
|
||||
surname varchar(128) NOT NULL default '',
|
||||
vcard text NOT NULL default ''
|
||||
);
|
||||
|
||||
INSERT INTO contacts_tmp (contact_id, user_id, changed, del, name, email, firstname, surname, vcard)
|
||||
SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts;
|
||||
|
||||
DROP TABLE contacts;
|
||||
CREATE TABLE contacts (
|
||||
contact_id integer NOT NULL PRIMARY KEY,
|
||||
user_id integer NOT NULL default '0',
|
||||
changed datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
del tinyint NOT NULL default '0',
|
||||
name varchar(128) NOT NULL default '',
|
||||
email varchar(255) NOT NULL default '',
|
||||
firstname varchar(128) NOT NULL default '',
|
||||
surname varchar(128) NOT NULL default '',
|
||||
vcard text NOT NULL default '',
|
||||
words text NOT NULL default ''
|
||||
);
|
||||
|
||||
INSERT INTO contacts (contact_id, user_id, changed, del, name, email, firstname, surname, vcard)
|
||||
SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts_tmp;
|
||||
|
||||
CREATE INDEX ix_contacts_user_id ON contacts(user_id, email);
|
||||
DROP TABLE contacts_tmp;
|
||||
|
||||
|
||||
DELETE FROM messages;
|
||||
DELETE FROM cache;
|
||||
CREATE INDEX ix_contactgroupmembers_contact_id ON contactgroupmembers (contact_id);
|
54
data/web/rc/SQL/sqlite/2011092800.sql
Normal file
54
data/web/rc/SQL/sqlite/2011092800.sql
Normal file
@@ -0,0 +1,54 @@
|
||||
-- Updates from version 0.6
|
||||
|
||||
CREATE TABLE dictionary (
|
||||
user_id integer DEFAULT NULL,
|
||||
"language" varchar(5) NOT NULL,
|
||||
data text NOT NULL
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX ix_dictionary_user_language ON dictionary (user_id, "language");
|
||||
|
||||
CREATE TABLE searches (
|
||||
search_id integer NOT NULL PRIMARY KEY,
|
||||
user_id integer NOT NULL DEFAULT '0',
|
||||
"type" smallint NOT NULL DEFAULT '0',
|
||||
name varchar(128) NOT NULL,
|
||||
data text NOT NULL
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX ix_searches_user_type_name ON searches (user_id, type, name);
|
||||
|
||||
DROP TABLE messages;
|
||||
|
||||
CREATE TABLE cache_index (
|
||||
user_id integer NOT NULL,
|
||||
mailbox varchar(255) NOT NULL,
|
||||
changed datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
valid smallint NOT NULL DEFAULT '0',
|
||||
data text NOT NULL,
|
||||
PRIMARY KEY (user_id, mailbox)
|
||||
);
|
||||
|
||||
CREATE INDEX ix_cache_index_changed ON cache_index (changed);
|
||||
|
||||
CREATE TABLE cache_thread (
|
||||
user_id integer NOT NULL,
|
||||
mailbox varchar(255) NOT NULL,
|
||||
changed datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
data text NOT NULL,
|
||||
PRIMARY KEY (user_id, mailbox)
|
||||
);
|
||||
|
||||
CREATE INDEX ix_cache_thread_changed ON cache_thread (changed);
|
||||
|
||||
CREATE TABLE cache_messages (
|
||||
user_id integer NOT NULL,
|
||||
mailbox varchar(255) NOT NULL,
|
||||
uid integer NOT NULL,
|
||||
changed datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
data text NOT NULL,
|
||||
flags integer NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (user_id, mailbox, uid)
|
||||
);
|
||||
|
||||
CREATE INDEX ix_cache_messages_changed ON cache_messages (changed);
|
11
data/web/rc/SQL/sqlite/2011111600.sql
Normal file
11
data/web/rc/SQL/sqlite/2011111600.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
-- Updates from version 0.7-beta
|
||||
|
||||
DROP TABLE session;
|
||||
CREATE TABLE session (
|
||||
sess_id varchar(128) NOT NULL PRIMARY KEY,
|
||||
created datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
changed datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
ip varchar(40) NOT NULL default '',
|
||||
vars text NOT NULL
|
||||
);
|
||||
CREATE INDEX ix_session_changed ON session (changed);
|
38
data/web/rc/SQL/sqlite/2011121400.sql
Normal file
38
data/web/rc/SQL/sqlite/2011121400.sql
Normal file
@@ -0,0 +1,38 @@
|
||||
-- Updates from version 0.7
|
||||
|
||||
CREATE TABLE contacts_tmp (
|
||||
contact_id integer NOT NULL PRIMARY KEY,
|
||||
user_id integer NOT NULL,
|
||||
changed datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
del tinyint NOT NULL default '0',
|
||||
name varchar(128) NOT NULL default '',
|
||||
email text NOT NULL default '',
|
||||
firstname varchar(128) NOT NULL default '',
|
||||
surname varchar(128) NOT NULL default '',
|
||||
vcard text NOT NULL default '',
|
||||
words text NOT NULL default ''
|
||||
);
|
||||
|
||||
INSERT INTO contacts_tmp (contact_id, user_id, changed, del, name, email, firstname, surname, vcard, words)
|
||||
SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard, words FROM contacts;
|
||||
|
||||
DROP TABLE contacts;
|
||||
|
||||
CREATE TABLE contacts (
|
||||
contact_id integer NOT NULL PRIMARY KEY,
|
||||
user_id integer NOT NULL,
|
||||
changed datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
del tinyint NOT NULL default '0',
|
||||
name varchar(128) NOT NULL default '',
|
||||
email text NOT NULL default '',
|
||||
firstname varchar(128) NOT NULL default '',
|
||||
surname varchar(128) NOT NULL default '',
|
||||
vcard text NOT NULL default '',
|
||||
words text NOT NULL default ''
|
||||
);
|
||||
|
||||
INSERT INTO contacts (contact_id, user_id, changed, del, name, email, firstname, surname, vcard, words)
|
||||
SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard, words FROM contacts_tmp;
|
||||
|
||||
CREATE INDEX ix_contacts_user_id ON contacts(user_id, del);
|
||||
DROP TABLE contacts_tmp;
|
44
data/web/rc/SQL/sqlite/2012080700.sql
Normal file
44
data/web/rc/SQL/sqlite/2012080700.sql
Normal file
@@ -0,0 +1,44 @@
|
||||
-- Updates from version 0.8
|
||||
|
||||
DROP TABLE cache;
|
||||
CREATE TABLE cache (
|
||||
user_id integer NOT NULL default 0,
|
||||
cache_key varchar(128) NOT NULL default '',
|
||||
created datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
data text NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX ix_cache_user_cache_key ON cache(user_id, cache_key);
|
||||
CREATE INDEX ix_cache_created ON cache(created);
|
||||
|
||||
CREATE TABLE tmp_users (
|
||||
user_id integer NOT NULL PRIMARY KEY,
|
||||
username varchar(128) NOT NULL default '',
|
||||
mail_host varchar(128) NOT NULL default '',
|
||||
created datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
last_login datetime DEFAULT NULL,
|
||||
language varchar(5),
|
||||
preferences text NOT NULL default ''
|
||||
);
|
||||
|
||||
INSERT INTO tmp_users (user_id, username, mail_host, created, last_login, language, preferences)
|
||||
SELECT user_id, username, mail_host, created, last_login, language, preferences FROM users;
|
||||
|
||||
DROP TABLE users;
|
||||
|
||||
CREATE TABLE users (
|
||||
user_id integer NOT NULL PRIMARY KEY,
|
||||
username varchar(128) NOT NULL default '',
|
||||
mail_host varchar(128) NOT NULL default '',
|
||||
created datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
last_login datetime DEFAULT NULL,
|
||||
language varchar(5),
|
||||
preferences text NOT NULL default ''
|
||||
);
|
||||
|
||||
INSERT INTO users (user_id, username, mail_host, created, last_login, language, preferences)
|
||||
SELECT user_id, username, mail_host, created, last_login, language, preferences FROM tmp_users;
|
||||
|
||||
CREATE UNIQUE INDEX ix_users_username ON users(username, mail_host);
|
||||
|
||||
CREATE INDEX ix_identities_email ON identities(email, del);
|
6
data/web/rc/SQL/sqlite/2013011000.sql
Normal file
6
data/web/rc/SQL/sqlite/2013011000.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
-- Updates from version 0.9-beta
|
||||
|
||||
CREATE TABLE IF NOT EXISTS system (
|
||||
name varchar(64) NOT NULL PRIMARY KEY,
|
||||
value text NOT NULL
|
||||
);
|
2
data/web/rc/SQL/sqlite/2013011700.sql
Normal file
2
data/web/rc/SQL/sqlite/2013011700.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
-- drop temp table created in 2012080700.sql
|
||||
DROP TABLE IF EXISTS tmp_users;
|
1
data/web/rc/SQL/sqlite/2013042700.sql
Normal file
1
data/web/rc/SQL/sqlite/2013042700.sql
Normal file
@@ -0,0 +1 @@
|
||||
-- empty
|
8
data/web/rc/SQL/sqlite/2013052500.sql
Normal file
8
data/web/rc/SQL/sqlite/2013052500.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
CREATE TABLE cache_shared (
|
||||
cache_key varchar(255) NOT NULL,
|
||||
created datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
data text NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX ix_cache_shared_cache_key ON cache_shared(cache_key);
|
||||
CREATE INDEX ix_cache_shared_created ON cache_shared(created);
|
48
data/web/rc/SQL/sqlite/2013061000.sql
Normal file
48
data/web/rc/SQL/sqlite/2013061000.sql
Normal file
@@ -0,0 +1,48 @@
|
||||
DROP TABLE cache_index;
|
||||
DROP TABLE cache_thread;
|
||||
DROP TABLE cache_messages;
|
||||
|
||||
ALTER TABLE cache ADD expires datetime DEFAULT NULL;
|
||||
DROP INDEX ix_cache_created;
|
||||
|
||||
ALTER TABLE cache_shared ADD expires datetime DEFAULT NULL;
|
||||
DROP INDEX ix_cache_shared_created;
|
||||
|
||||
UPDATE cache SET expires = datetime(created, '+604800 seconds');
|
||||
UPDATE cache_shared SET expires = datetime(created, '+604800 seconds');
|
||||
|
||||
CREATE INDEX ix_cache_expires ON cache(expires);
|
||||
CREATE INDEX ix_cache_shared_expires ON cache_shared(expires);
|
||||
|
||||
CREATE TABLE cache_index (
|
||||
user_id integer NOT NULL,
|
||||
mailbox varchar(255) NOT NULL,
|
||||
expires datetime DEFAULT NULL,
|
||||
valid smallint NOT NULL DEFAULT '0',
|
||||
data text NOT NULL,
|
||||
PRIMARY KEY (user_id, mailbox)
|
||||
);
|
||||
|
||||
CREATE INDEX ix_cache_index_expires ON cache_index (expires);
|
||||
|
||||
CREATE TABLE cache_thread (
|
||||
user_id integer NOT NULL,
|
||||
mailbox varchar(255) NOT NULL,
|
||||
expires datetime DEFAULT NULL,
|
||||
data text NOT NULL,
|
||||
PRIMARY KEY (user_id, mailbox)
|
||||
);
|
||||
|
||||
CREATE INDEX ix_cache_thread_expires ON cache_thread (expires);
|
||||
|
||||
CREATE TABLE cache_messages (
|
||||
user_id integer NOT NULL,
|
||||
mailbox varchar(255) NOT NULL,
|
||||
uid integer NOT NULL,
|
||||
expires datetime DEFAULT NULL,
|
||||
data text NOT NULL,
|
||||
flags integer NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (user_id, mailbox, uid)
|
||||
);
|
||||
|
||||
CREATE INDEX ix_cache_messages_expires ON cache_messages (expires);
|
1
data/web/rc/SQL/sqlite/2014042900.sql
Normal file
1
data/web/rc/SQL/sqlite/2014042900.sql
Normal file
@@ -0,0 +1 @@
|
||||
-- empty
|
1
data/web/rc/SQL/sqlite/2015030800.sql
Normal file
1
data/web/rc/SQL/sqlite/2015030800.sql
Normal file
@@ -0,0 +1 @@
|
||||
-- empty
|
35
data/web/rc/SQL/sqlite/2015111100.sql
Normal file
35
data/web/rc/SQL/sqlite/2015111100.sql
Normal file
@@ -0,0 +1,35 @@
|
||||
CREATE TABLE tmp_users (
|
||||
user_id integer NOT NULL PRIMARY KEY,
|
||||
username varchar(128) NOT NULL default '',
|
||||
mail_host varchar(128) NOT NULL default '',
|
||||
created datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
last_login datetime DEFAULT NULL,
|
||||
failed_login datetime DEFAULT NULL,
|
||||
failed_login_counter integer DEFAULT NULL,
|
||||
language varchar(5),
|
||||
preferences text NOT NULL default ''
|
||||
);
|
||||
|
||||
INSERT INTO tmp_users (user_id, username, mail_host, created, last_login, language, preferences)
|
||||
SELECT user_id, username, mail_host, created, last_login, language, preferences FROM users;
|
||||
|
||||
DROP TABLE users;
|
||||
|
||||
CREATE TABLE users (
|
||||
user_id integer NOT NULL PRIMARY KEY,
|
||||
username varchar(128) NOT NULL default '',
|
||||
mail_host varchar(128) NOT NULL default '',
|
||||
created datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
last_login datetime DEFAULT NULL,
|
||||
failed_login datetime DEFAULT NULL,
|
||||
failed_login_counter integer DEFAULT NULL,
|
||||
language varchar(5),
|
||||
preferences text NOT NULL default ''
|
||||
);
|
||||
|
||||
INSERT INTO users (user_id, username, mail_host, created, last_login, language, preferences)
|
||||
SELECT user_id, username, mail_host, created, last_login, language, preferences FROM tmp_users;
|
||||
|
||||
CREATE UNIQUE INDEX ix_users_username ON users(username, mail_host);
|
||||
|
||||
DROP TABLE tmp_users;
|
9
data/web/rc/SQL/sqlite/2016081200.sql
Normal file
9
data/web/rc/SQL/sqlite/2016081200.sql
Normal file
@@ -0,0 +1,9 @@
|
||||
DROP TABLE session;
|
||||
CREATE TABLE session (
|
||||
sess_id varchar(128) NOT NULL PRIMARY KEY,
|
||||
changed datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
ip varchar(40) NOT NULL default '',
|
||||
vars text NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX ix_session_changed ON session (changed);
|
0
data/web/rc/SQL/sqlite/2016100900.sql
Normal file
0
data/web/rc/SQL/sqlite/2016100900.sql
Normal file
21
data/web/rc/SQL/sqlite/2016112200.sql
Normal file
21
data/web/rc/SQL/sqlite/2016112200.sql
Normal file
@@ -0,0 +1,21 @@
|
||||
DROP TABLE cache;
|
||||
DROP TABLE cache_shared;
|
||||
|
||||
CREATE TABLE cache (
|
||||
user_id integer NOT NULL default 0,
|
||||
cache_key varchar(128) NOT NULL default '',
|
||||
expires datetime DEFAULT NULL,
|
||||
data text NOT NULL,
|
||||
PRIMARY KEY (user_id, cache_key)
|
||||
);
|
||||
|
||||
CREATE INDEX ix_cache_expires ON cache(expires);
|
||||
|
||||
CREATE TABLE cache_shared (
|
||||
cache_key varchar(255) NOT NULL,
|
||||
expires datetime DEFAULT NULL,
|
||||
data text NOT NULL,
|
||||
PRIMARY KEY (cache_key)
|
||||
);
|
||||
|
||||
CREATE INDEX ix_cache_shared_expires ON cache_shared(expires);
|
Reference in New Issue
Block a user