From 23362230b59e89c63743c8d174f0fe11533e59b2 Mon Sep 17 00:00:00 2001 From: thomascube Date: Tue, 20 Apr 2010 07:26:11 +0000 Subject: Replace ALTER TABLE statement in Sqlite schema update script; more precise instructions for db updates and about new cleaning script --- INSTALL | 20 ++++++++++++++------ README | 22 +++++++++++----------- SQL/sqlite.update.sql | 42 ++++++++++++++++++++++++++++++++++++++++-- installer/test.php | 3 ++- 4 files changed, 67 insertions(+), 20 deletions(-) diff --git a/INSTALL b/INSTALL index 2664e7f89..be5a0e93b 100644 --- a/INSTALL +++ b/INSTALL @@ -52,7 +52,7 @@ INSTALLATION CONFIGURATION HINTS =================== -RoundCube writes internal errors to the 'errors' log file located in the logs +Roundcube writes internal errors to the 'errors' log file located in the logs directory which can be configured in config/main.inc.php. If you want ordinary PHP errors to be logged there as well, enable the 'php_value error_log' line in the .htaccess file and set the path to the log file accordingly. @@ -66,7 +66,7 @@ in the .htaccess file. DATABASE SETUP ============== -Note: Database for RoundCube must use UTF-8 character set. +Note: Database for Roundcube must use UTF-8 character set. * MySQL ------- @@ -106,7 +106,7 @@ webserver can write to the file and the directory containing the file. * PostgreSQL ------------ -To use RoundCube with PostgreSQL support you have to follow these +To use Roundcube with PostgreSQL support you have to follow these simple steps, which have to be done as the postgres system user (or which ever is the database superuser): @@ -123,6 +123,14 @@ versions don't have a -O option for the createdb, so if you are using that version you'll have to change ownership of the DB later. +Database cleaning +----------------- +Do keep your database slick and clean we recommend to periodically execute +bin/cleandb.php which finally removes all records that are marked as deleted. +Best solution is to install a cronjob running this script daily. + + + MANUAL CONFIGURATION ==================== @@ -139,7 +147,7 @@ increase the allowed size of file attachments, for example: UPGRADING ========= -If you already have a previous version of RoundCube installed, +If you already have a previous version of Roundcube installed, please refer to the instructions in UPGRADING guide. @@ -147,9 +155,9 @@ OPTIMISING ========== There are two forms of optimisation here, compression and caching, both aimed -at increasing an end user's experience using RoundCube Webmail. Compression +at increasing an end user's experience using Roundcube Webmail. Compression allows the static web pages to be delivered with less bandwidth. The index.php -of RoundCube Webmail already enables compression on its output. The settings +of Roundcube Webmail already enables compression on its output. The settings below allow compression to occur for all static files. Caching sets HTTP response headers that enable a user's web client to understand what is static and how to cache it. diff --git a/README b/README index 667e7f417..634c794ff 100644 --- a/README +++ b/README @@ -11,18 +11,18 @@ installation is highly recommended. Introduction: ------------- -RoundCube Webmail is a browser-based multilingual IMAP client with an +Roundcube Webmail is a browser-based multilingual IMAP client with an application-like user interface. It provides full functionality you expect from an e-mail client, including MIME support, address book, folder management, -message searching and spell checking. RoundCube Webmail is written in PHP and -requires the MySQL, PostgreSQL or SQLite database. The user interface is fully -skinnable using XHTML and CSS 2. +message searching and spell checking. Roundcube Webmail is written in PHP and +requires the MySQL, PostgreSQL or SQLite database. With its plugin API it is +easily extendable and the user interface is fully customizable using skins +which are pure XHTML and CSS 2. -This project is meant to be a modern webmail solution which is easy to -install/configure and that runs on a standard PHP plus MySQL, PostgreSQL or SQLite -configuration. It includes open-source classes/libraries like PEAR -(http://pear.php.net) and the IMAP wrapper from IlohaMail -(http://www.ilohamail.org). +This project includes other open-source classes/libraries from PEAR +(http://pear.php.net), an IMAP library derrived from IlohaMail +the TinyMCE rich text editor, Googiespell library for spell checking +or the HTML sanitizer by Frederic Motte. The current development skin uses icons designed by Stephen Horlander and Kevin Gerich for Mozilla.org. @@ -42,8 +42,8 @@ LICENSE for more information about our license. Contribution: ------------- -Want to help make RoundCube the best webmail solution ever? -RoundCube is open source software. Our developers and contributors all +Want to help make Roundcube the best webmail solution ever? +Roundcube is open source software. Our developers and contributors all are volunteers and we're always looking for new additions and resources. For more information visit http://roundcube.net/contribute diff --git a/SQL/sqlite.update.sql b/SQL/sqlite.update.sql index dd2887ca2..4b9b2f92e 100644 --- a/SQL/sqlite.update.sql +++ b/SQL/sqlite.update.sql @@ -45,10 +45,48 @@ CREATE INDEX ix_contacts_user_id ON contacts(user_id, email); -- 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; -CREATE INDEX ix_identities_user_id ON identities (user_id, del); +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; -ALTER TABLE identities ADD COLUMN changed datetime NOT NULL default '0000-00-00 00:00:00'; +DROP TABLE temp_identities; CREATE TABLE contactgroups ( contactgroup_id integer NOT NULL PRIMARY KEY, diff --git a/installer/test.php b/installer/test.php index 66698d7ad..f1218c34f 100644 --- a/installer/test.php +++ b/installer/test.php @@ -167,7 +167,8 @@ if ($db_working) { else if ($RCI->db_schema_check($DB, $update = !empty($_POST['updatedb']))) { $RCI->fail('DB Schema', "Database schema differs"); $updatefile = INSTALL_PATH . 'SQL/' . $DB->db_provider . '.update.sql'; - echo '

Please manually execute the SQL statements from '.$updatefile.' on your database

'; + echo '

Please manually execute the SQL statements from '.$updatefile.' on your database.
'; + echo 'See comments in the file and execute queries that are superscribed with the currently installed version number.

'; $db_working = false; } else { -- cgit v1.2.3