+++ /dev/null
-===================================
- Horde Database Installation Guide
-===================================
-
-:Contact: horde@lists.horde.org
-
-
-Purpose of this file
-~~~~~~~~~~~~~~~~~~~~
-
-This file will hopefully ease the installation and configuration of your
-database for use with Horde. The scope of the document deals primarily with
-using your database with Horde and should not be considered a resource for
-general database tasks.
-
-
-Requirements for Horde
-~~~~~~~~~~~~~~~~~~~~~~
-
-Horde currently supports at least 7 databases:
-
- - MySQL http://www.mysql.com/
- - PostgreSQL http://www.postgresql.org/
- - Oracle http://www.oracle.com/
- - Sybase http://www.sybase.com/
- - SQLite http://www.sqlite.org/
- - MS SQL http://www.microsoft.com/sql/
- - MSDE http://www.microsoft.com/sql/msde/
-
-MySQL and PostgreSQL are regularly used by the development team, and will work
-with no problems. Oracle and SQLite support has been much improved recently
-and works fine too. Sybase was reported working in the previous version of
-Horde/IMP by some of our users, and is assumed to still work... but that
-hasn't been verified recently.
-
-
-Before You Begin
-~~~~~~~~~~~~~~~~
-
-You will need to have your database preconfigured and working on your system
-before you even get to this stage. For help with this, please consult your
-database specific help files.
-
-Before using any of the scripts listed below, please look over them to ensure
-that any system-specific settings (or personal choices) are set to your
-desired settings (eg. ``username``, etc.).
-
-In addition, if you create your own database user or change the
-permissions for the ``horde`` user, you **MUST** ensure that the user
-that Horde connects to the database as is able to create
-tables. Otherwise Horde will be unable to create sequence tables for
-tracking primary keys.
-
-**PLEASE NOTE** that the database configuration steps listed below **MUST**
-match what is configured within Horde.
-
-Specifically, if you change the database name, user, or password while
-configuring the database (below), you will need to make the same changes to
-your Horde configuration files as well.
-
-
-MySQL
-~~~~~
-
-The mysql_create.sql script will create a database called ``horde``, and a
-user called ``horde`` (with password ``horde``) that has full rights to the
-database. *Note that with MySQL, PEAR DB emulates sequences by automatically
-creating extra tables ending in _seq, so the MySQL ``horde`` user must have
-``CREATE`` privilege on the ``horde`` database.
-
-This script needs to be run as the MySQL root user (which is *NOT* the same as
-the UNIX/Linux root user)::
-
- $ mysql --user=root --password=<MySQL-root-passwd> < create.mysql.sql
-
-After running this script, it's a good idea to restart your MySQL server::
-
- $ mysqladmin --user=root --password=<MySQL-root-passwd> reload
-
-To check that this is working, the following command should connect without
-errors::
-
- $ mysql --user=horde --password=horde horde
-
-Type ``quit`` to quit MySQL.
-
-
-PostgreSQL
-~~~~~~~~~~
-
- # su - postgres (or whatever your database runs as... usually postgres)
- $ psql -d template1 -f create.pgsql.sql
-
-This script will create a ``horde`` database and a ``horde`` user. You should
-set a password for this user with this command (if you didn't uncomment the
-one in create.pgsql.sql)::
-
- $ psql -qc "ALTER USER horde WITH PASSWORD 'pass';" template1 postgres
-
-Make sure to run any application SQL files as the ``horde`` user as well.
-
-
-Oracle
-~~~~~~
-
-Run ``sqlplus``. Login, then [we need instructions for creating the database
-and user here].
-
-That should be it. Restart Oracle just to be sure, and try it. Then create
-the tables within the ``horde`` database::
-
-[Also need those instructions here.]
-
-
-Sybase
-~~~~~~
-
-To create the database, from ``isql`` run::
-
- create database horde
-
-Next, you should (recommended) create a login to use with this database. The
-``isql`` command for this is::
-
- sp_addlogin <username> <password>
-
-Next you need to change the ownership of the database to this new user. The
-``isql`` command for this is::
-
- sp_changedbowner <username>
-
-After that, you just need to set up your tables within the database. To do
-that, just run this command from the command line::
-
- isql -i horde_users.sql -U<username> -P<password>
- isql -i horde_prefs.sql -U<username> -P<password>
-
-
-MSDE 2000 (and possibly MS SQL Server)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To create user and database, use the osql command::
-
- C:\>osql -U sa -P admin_password -S localhost -i create.msde.sql
-
-Be sure to change the password for the horde user in the script file. To
-specify a particular instance of the SQL server use the
-<servername>/<instance> for the -S flag. If you aren't using mixed SQL
-authentication, then you'll need to modify the script to associate the horde
-user with a windows user account and run the script in the following manner as
-the Administrator::
-
- C:\>osql -E -S localhost -i create.msde.sql
-
-If you're having problems running this script on a SQL server on the network,
-be sure the server is set up to allow network access.
-
-
-Additional Notes
-~~~~~~~~~~~~~~~~
-
-This is by far not a complete HOWTO. This is just a compiled list of what
-people have contributed so far. If you have tips, ideas, suggestions or
-anything else that you think could help others in setting up their database
-for use with Horde, please let us know.
-
-<dev@lists.horde.org>
+++ /dev/null
-FIRST OF ALL:
-This is not my first documentation! but my first in english.
-Feel free to contact me at torsten@flammiger.org if you have
-any suggestions or problems related to this docs
-
-All i will write about Oracle with Horde is based on Oracle >= 8i
-though it should work with 9i too.
-
-I think (i'm sure) 'Up to date' available distributions
-are capable to run Oracle. I have tested it on
-Slackware 7.1/8.0 (8.1.6) and have running it on Gentoo 1.2 (8.1.7.4)
-without any Problems. Some distributions are certified like SuSE or
-RedHat. On Debian it should also run.
-
-Furthermore i'll assume, that no "normal" user is going to install
-or is in need to install an Oracle DB (of course there are some freaks ;)
-so knowledge about setting up and maintain an Oracle
-DB is indispensable! Maybe this is the reason why no Admin
-has ever posted any docs about getting Horde work with Oracle
-
-NOTE: all docs are available from www.oracle.com for free (AFAIK)
-
-Now let's begin:
-
-Case 1)
-I'll assume that you do not have an instance running and therefore
-are about to install a fresh instance "horde" .
-
--- check and if needed change shared memory parameters
--- create at least the dba group
--- create your oracle user, name it as you like
- make sure your ora-user is in the group dba
--- su - <your fresh oracle user>
--- set up all the appropriate environment variables for oracle
- take a close look at the install howto provided by oracle
--- mount the CD (if it is your source media)
--- run the script runInstaller - better to have X11 installed ;)
- Attention: If you are about to install Oracle 9i
- do NOT run the installer from directly from your CD!
- like cd /cdrom and then start it by typing ./runInstaller
- you won't be able to unmount the CD later on but you have to
- because 9i is a 3CD-Set
--- follow the instructions given by the installation programm
- at the point where you are asked for an installation method
- choose "user-defined". This ist especially VERY IMPORTENT if you
- are about to install 8i since you have to patch the installation
- BEFORE you create your database! If you not choose "user-defined"
- the program "dbassist" will automatically start at the end of
- the installation process and will hang and/or fail.
--- at the end of your installation you have to configure your listener.ora,
- tnsnames.ora and your sqlnet.ora This is all done by the
- installation programm.
--- Now: if you use 8.1.7 get the patch glibc-2.1.3-stubs.tar.gz from Oracle.
- It's at the same page like the db-source. Install as described in README.stub
- (it's in the package so first untar it somewhere else or use 'mc' )
--- Now create your database. Run "dbassist"
- It's now on you to decide how big the initial tablespaces are, how many
- control files you like, of course how it's name will be and what
- option you plan to use like InterMedia. It's Your Decision !
- (BTW: the defaults will work and are very time consuming ;)
- At the end let the dbasist program save the configuration. You can choose
- location and name. Now you can close dbassist.
--- change to the location where you stored the scripts and take a short look
- at least into oraclerun.sh and oraclerun1.sh. If all is OK create the database:
- run ./oraclerun.sh.
- Sit back take a cup of coffee and hope all will be good ;)
-
- If you choosed the InterMedia option the creation process will take
- about 2 and a half hour (on my 500MHz-P3 :-). Without Java it will take
- about 1 hour. (this both ist short - 9i takes as min. twice that time !)
-
- NOTE: choosing InterMedia will give you enhanced possibilities for storing
- and manipulating media files. Look at http://intermedia.as-dataservice.de/
- for an example...
-
- ANOTHER NOTE: if you installed 8.1.7 and afterwards applied an up to date
- patchset (like 8.1.7.4) you MUST repatch your installation with the
- glibc-stubs patch or your DB won't run
-
- PROBLEMS ?: Look at www.orafaq.com for your answer
-
-All went fine? Good, lets go ahead and create a new tablespace called horde
-
--- The database should run after it was succesfully created. Login as user system
- or sys (like you prefer). The passwords where written to you on STDOUT.
- Please change them! I know databases running for years storing important data
- and still have the default password !!
- (manager for system and change_on_install for sys)
-
--- sqlplus sys/change_on_install@<your SID>
- if you properly set the ORACLE_SID environment variable you can ommit the
- trailing @<your sid> when you are logged on to the machine which is running the DB.
-
--- create the tablespace for horde
- sql> CREATE TABLESPACE HORDE
- LOGGING
- DATAFILE '<YOUR PATH HERE>/HORDE.dbf' SIZE <AS YOU LIKE>M;
-
- This is indeed very simple but it works and nothing has to be in uppercase
- letters. After a few seconds or minutes - depends on how many megabytes
- you gave to that tablespace - a new datafile has been created.
-
--- We can now create a user with default tablespace HORDE, lets name him horde:
-
- CREATE USER HORDE PROFILE DEFAULT IDENTIFIED BY <your password here>
- TABLESPACE HORDE TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON TEMP
- QUOTA UNLIMITED ON HORDE ACCOUNT UNLOCK;
- GRANT CONNECT TO HORDE;
-
--- commit your work: > commit;
- and log out
--- login as user horde: sqlplus horde/<password>@<your sid> and create the tables
- !<path to horde>/scripts/db/oracle_create.sql and commit your aktion: > commit;
- the tables will be created in the default tablespace for your horde user
-
-OK now you can configure Horde to use your instance but after a reboot Oracle
-will not start automaticly. That is what we are going to configure now.
-
--- logout of oracle, login as user sys or <your oracle user>
- and shutdown your instance: (hope your oracle user is in the group dba -
- if not he can't shut down your instance)
- > connect internal
- > shutdown immediate
- and logout...
-
--- test the script "dbstart" in $ORACLE_HOME/bin If the DB does not start
- you have to edit it or create a link from $ORACLE_HOME/dbs/init<sid-name>.ora
- to $ORACLE_HOME/admin/<sid name>/pfile/init<sid-name>.ora
- ( dbstart will look for your sid-files in subdir "dbs" but these are stored
- under $ORACLE_HOME/admin/<sid name>/pfile/ - this maybe is a bug or a
- feature in the oracle installer )
- test "dbstart" again - now it should work, i hope
-
--- edit the file /etc/oratab
- Change the line
- <sid-name>:<your Oracle Home - Full qualified path>:N to
- <sid-name>:<your Oracle Home - Full qualified path>:Y
-
--- now change or create a startup script which is executed at boot time. It should contain
- something like this:
-
- su - <your oracle user> -c "<hour path here>/bin/lsnrctl start"
- su - <your oracle user> -c "<your path here>/bin/dbstart"
-
- and of course your instance should be stopped a regular way. Place this
- in the appropriate script which is executed at shutdown time
-
- su - <your oracle user> -c "<hour path here>/bin/lsnrctl stop"
- su - <your oracle user> -c "<your path here>/bin/dbshut"
-
--- test it
-
-End of Case 1)
-
-
-Case 2)
-
-Problem: You have an allready running oracle database and would like
-to add a new instance. Solution is quiet easy.
-For now, the new database' name will be --> horde
-
-Before i start i'll make some assumptions:
-(PLEASE CHANGE THE PATHNAMES AS NECESSARY )
-
-1. $ORACLE_HOME=/home/oracle
-2. $ORACLE_BASE = $ORACLE_HOME
-3. Your existing Database is installed under $ORACLE_HOME/oradata/<your instance name>
-4. Your existing Trace/Dump/pfile/bdump... - directories are installed under
- $ORACLE_HOME/admin/<your instance name>/
-
- Therefore your new horde database files will go into another directory:
- $ORACLE_HOME/oradata/horde/
-
- The Trace/Dump/pfile/bdump... - dirs go to:
- $ORACLE_HOME/admin/horde/
-
- The inithorde.ora file in $ORACLE_HOME/dbs should be a link to:
- $ORACLE_HOME/admin/horde/pfile/init.ora
-
-Lets begin:
-
--- create the directories for your new db (as your ORACLE user):
- #> mkdir -p $ORACLE_HOME/oradata/horde/archive
- #> mkdir -p $ORACLE_HOME/admin/horde/adhoc \
- $ORACLE_HOME/admin/horde/bdump \
- $ORACLE_HOME/admin/horde/cdump \
- $ORACLE_HOME/admin/horde/create \
- $ORACLE_HOME/admin/horde/exp \
- $ORACLE_HOME/admin/horde/pfile \
- $ORACLE_HOME/admin/horde/udump
-
--- copy your existing init.ora file from $ORACLE_HOME/admin/<existing instance>/pfile/
- to $ORACLE_HOME/admin/horde/pfile/ and make the appropriate changes in it
- CHANGE AT LEAST THE PATHNAMES !!!
-
--- make the link from $ORACLE_HOME/dbs/inithorde.ora to
- $ORACLE_HOME/admin/horde/pfile/init.ora
-
- #> ln -s $ORACLE_HOME/admin/horde/pfile/init.ora $ORACLE_HOME/dbs/inithorde.ora
-
--- set ORACLE_SID to horde
- #> ORACLE_SID=horde
-
--- login and startup the instance
- #> sqlplus /nolog
- sql> startup pfile=/home/oracle/admin/horde/pfile/init.ora nomount
-
--- create the database from create_horde_db.sql - you should of course have saved it somwhere ;)
- sql> !/path/to/create_horde_db.sql
-
- as template i took the script from
- http://www.adp-gmbh.ch/ora/admin/creatingdbmanually.html#samplecreatedatabase
- and made some minor changes.
-
--- create the data dictionary, etc.
- sql> !/home/oracle/rdbms/admin/catalog.sql
- sql> !/home/oracle/rdbms/admin/catproc.sql
- sql> !/home/oracle/rdbms/admin/caths.sql
- sql> commit;
- sql> exit
-
--- now add a new line to /etc/oratab
-
- old ( only 1 instance ):
- <your installed instance name>:/home/oracle:Y
-
- new ( with the new one ):
- <your installed instance name>:/home/oracle:Y
- horde:/home/oracle:Y
-
--- add the new instance to your tnsnames.ora
- use the java gui net8assist or copy and paste the statements by yourself and
- make the changes as needed
-
--- after all, the scripts dbstart und dbshut will then automaticly start and shutdown all
- instances at once
-
-Creating the Tablespace and required user is the same as described above
-
-
-I hope that there are not so many spelling mistakes ( my native language is german )
-and that this will be helpfull for someone
-
-End of Case 2)
+++ /dev/null
-USE master
-GO
-
-CREATE DATABASE horde
-GO
-
-EXEC sp_addlogin 'horde', 'horde_mgr', 'horde'
-GO
-
-USE horde
-GO
-
-EXEC sp_grantdbaccess 'horde'
-GO
-
-CREATE TABLE horde_users (
- user_uid VARCHAR(255) NOT NULL,
- user_pass VARCHAR(255) NOT NULL,
- user_soft_expiration_date INT,
- user_hard_expiration_date INT,
-
- PRIMARY KEY (user_uid)
-)
-GO
-
-CREATE TABLE horde_signups (
- user_name VARCHAR(255) NOT NULL,
- signup_date INT NOT NULL,
- signup_host VARCHAR(255) NOT NULL,
- signup_data TEXT NOT NULL,
- PRIMARY KEY (user_name)
-)
-GO
-
-CREATE TABLE horde_groups (
- group_uid INT NOT NULL,
- group_name VARCHAR(255) NOT NULL,
- group_parents VARCHAR(255) NOT NULL,
- group_email VARCHAR(255),
- PRIMARY KEY (group_uid)
-)
-GO
-
-CREATE TABLE horde_groups_members (
- group_uid INT NOT NULL,
- user_uid VARCHAR(255) NOT NULL
-)
-GO
-
-CREATE INDEX group_uid_idx ON horde_groups_members (group_uid)
-CREATE INDEX user_uid_idx ON horde_groups_members (user_uid)
-GO
-
-CREATE TABLE horde_perms (
- perm_id INT NOT NULL IDENTITY,
- perm_name VARCHAR(255) NOT NULL,
- perm_parents VARCHAR(255) NOT NULL,
- perm_data TEXT,
- PRIMARY KEY (perm_id)
-)
-GO
-
-CREATE TABLE horde_prefs (
- pref_uid VARCHAR(200) NOT NULL,
- pref_scope VARCHAR(16) DEFAULT '' NOT NULL,
- pref_name VARCHAR(32) NOT NULL,
- pref_value TEXT NULL,
-
- PRIMARY KEY (pref_uid, pref_scope, pref_name)
-)
-GO
-
-CREATE INDEX pref_uid_idx ON horde_prefs (pref_uid)
-CREATE INDEX pref_scope_idx ON horde_prefs (pref_scope)
-GO
-
-CREATE TABLE horde_datatree (
- datatree_id INT NOT NULL,
- group_uid VARCHAR(255) NOT NULL,
- user_uid VARCHAR(255) NOT NULL,
- datatree_name VARCHAR(255) NOT NULL,
- datatree_parents VARCHAR(255) NOT NULL,
- datatree_order INT,
- datatree_data TEXT,
- datatree_serialized SMALLINT DEFAULT 0 NOT NULL,
-
- PRIMARY KEY (datatree_id)
-)
-GO
-
-CREATE INDEX datatree_datatree_name_idx ON horde_datatree (datatree_name)
-CREATE INDEX datatree_group_idx ON horde_datatree (group_uid)
-CREATE INDEX datatree_user_idx ON horde_datatree (user_uid)
-CREATE INDEX datatree_serialized_idx ON horde_datatree (datatree_serialized)
-CREATE INDEX datatree_parents_idx ON horde_datatree (datatree_parents)
-GO
-
-CREATE TABLE horde_datatree_attributes (
- datatree_id INT NOT NULL,
- attribute_name VARCHAR(255) NOT NULL,
- attribute_key VARCHAR(255) DEFAULT '' NOT NULL,
- attribute_value VARCHAR(MAX)
-)
-GO
-
-CREATE INDEX datatree_attribute_idx ON horde_datatree_attributes (datatree_id)
-CREATE INDEX datatree_attribute_name_idx ON horde_datatree_attributes (attribute_name)
-CREATE INDEX datatree_attribute_key_idx ON horde_datatree_attributes (attribute_key)
-GO
-
-CREATE TABLE horde_tokens (
- token_address VARCHAR(100) NOT NULL,
- token_id VARCHAR(32) NOT NULL,
- token_timestamp BIGINT NOT NULL,
-
- PRIMARY KEY (token_address, token_id)
-)
-GO
-
-CREATE TABLE horde_vfs (
- vfs_id INT NOT NULL,
- vfs_type SMALLINT NOT NULL,
- vfs_path VARCHAR(255) NOT NULL,
- vfs_name VARCHAR(255) NOT NULL,
- vfs_modified BIGINT NOT NULL,
- vfs_owner VARCHAR(255) NOT NULL,
- vfs_data TEXT,
-
- PRIMARY KEY (vfs_id)
-)
-GO
-
-CREATE INDEX vfs_path_idx ON horde_vfs (vfs_path)
-CREATE INDEX vfs_name_idx ON horde_vfs (vfs_name)
-GO
-
-CREATE TABLE horde_histories (
- history_id INT NOT NULL,
- object_uid VARCHAR(255) NOT NULL,
- history_action VARCHAR(32) NOT NULL,
- history_ts BIGINT NOT NULL,
- history_desc TEXT,
- history_who VARCHAR(255),
- history_extra TEXT,
-
- PRIMARY KEY (history_id)
-)
-GO
-
-CREATE INDEX history_action_idx ON horde_histories (history_action)
-CREATE INDEX history_ts_idx ON horde_histories (history_ts)
-CREATE INDEX history_uid_idx ON horde_histories (object_uid)
-GO
-
-CREATE TABLE horde_syncml_map (
- syncml_syncpartner VARCHAR(255) NOT NULL,
- syncml_db VARCHAR(255) NOT NULL,
- syncml_uid VARCHAR(255) NOT NULL,
- syncml_cuid VARCHAR(255),
- syncml_suid VARCHAR(255),
- syncml_timestamp BIGINT
-)
-GO
-
-CREATE INDEX syncml_syncpartner_idx ON horde_syncml_map (syncml_syncpartner);
-CREATE INDEX syncml_db_idx ON horde_syncml_map (syncml_db);
-CREATE INDEX syncml_uid_idx ON horde_syncml_map (syncml_uid);
-CREATE INDEX syncml_cuid_idx ON horde_syncml_map (syncml_cuid);
-CREATE INDEX syncml_suid_idx ON horde_syncml_map (syncml_suid);
-GO
-
-CREATE TABLE horde_syncml_anchors(
- syncml_syncpartner VARCHAR(255) NOT NULL,
- syncml_db VARCHAR(255) NOT NULL,
- syncml_uid VARCHAR(255) NOT NULL,
- syncml_clientanchor VARCHAR(255),
- syncml_serveranchor VARCHAR(255)
-);
-GO
-
-CREATE INDEX syncml_anchors_syncpartner_idx ON horde_syncml_anchors (syncml_syncpartner);
-CREATE INDEX syncml_anchors_db_idx ON horde_syncml_anchors (syncml_db);
-CREATE INDEX syncml_anchors_uid_idx ON horde_syncml_anchors (syncml_uid);
-GO
-
-CREATE TABLE horde_alarms (
- alarm_id VARCHAR(255) NOT NULL,
- alarm_uid VARCHAR(255),
- alarm_start DATETIME NOT NULL,
- alarm_end DATETIME,
- alarm_methods VARCHAR(255),
- alarm_params TEXT,
- alarm_title VARCHAR(255) NOT NULL,
- alarm_text TEXT,
- alarm_snooze DATETIME,
- alarm_dismissed SMALLINT DEFAULT 0 NOT NULL,
- alarm_internal TEXT
-);
-GO
-
-CREATE INDEX alarm_id_idx ON horde_alarms (alarm_id);
-CREATE INDEX alarm_user_idx ON horde_alarms (alarm_uid);
-CREATE INDEX alarm_start_idx ON horde_alarms (alarm_start);
-CREATE INDEX alarm_end_idx ON horde_alarms (alarm_end);
-CREATE INDEX alarm_snooze_idx ON horde_alarms (alarm_snooze);
-CREATE INDEX alarm_dismissed_idx ON horde_alarms (alarm_dismissed);
-GO
-
-CREATE TABLE horde_cache (
- cache_id VARCHAR(32) NOT NULL,
- cache_timestamp BIGINT NOT NULL,
- cache_expiration BIGINT NOT NULL,
- cache_data TEXT,
-
- PRIMARY KEY (cache_id)
-);
-GO
-
-CREATE TABLE horde_locks (
- lock_id VARCHAR(36) NOT NULL,
- lock_owner VARCHAR(32) NOT NULL,
- lock_scope VARCHAR(32) NOT NULL,
- lock_principal VARCHAR(255) NOT NULL,
- lock_origin_timestamp BIGINT NOT NULL,
- lock_update_timestamp BIGINT NOT NULL,
- lock_expiry_timestamp BIGINT NOT NULL,
- lock_type SMALLINT NOT NULL,
-
- PRIMARY KEY (lock_id)
-);
-GO
-
-CREATE TABLE horde_activesync_state (
- sync_time INT,
- sync_key VARCHAR(255) NOT NULL,
- sync_data TEXT,
- sync_devid VARCHAR(255),
- sync_folderid VARCHAR(255),
- sync_user VARCHAR(255) NOT NULL,
---
- PRIMARY KEY (sync_key)
-);
-GO
-
-CREATE INDEX activesync_state_folder_idx ON horde_activesync_state (sync_folderid);
-CREATE INDEX activesync_state_devid_idx ON horde_activesync_state (sync_devid);
-GO
-
-CREATE TABLE horde_activesync_map (
- message_uid VARCHAR(255) NOT NULL,
- sync_modtime INT,
- sync_key VARCHAR(255) NOT NULL,
- sync_devid VARCHAR(255) NOT NULL,
- sync_folderid VARCHAR(255) NOT NULL,
- sync_user VARCHAR(255) NOT NULL
-);
-GO
-
-CREATE INDEX activesync_map_user_idx ON horde_activesync_map (sync_user);
-CREATE INDEX activesync_map_devid_idx ON horde_activesync_map (sync_devid);
-CREATE INDEX activesync_map_message_idx ON horde_activesync_map (message_uid);
-GO
-
-CREATE TABLE horde_activesync_device (
- device_id VARCHAR(255) NOT NULL,
- device_type VARCHAR(255) NOT NULL,
- device_agent VARCHAR(255) NOT NULL,
- device_supported TEXT,
- device_policykey BIGINT DEFAULT 0,
- device_rwstatus INT,
---
- PRIMARY KEY (device_id)
-);
-GO
-
-CREATE TABLE horde_activesync_device_users (
- device_id VARCHAR(255) NOT NULL,
- device_user VARCHAR(255) NOT NULL,
- device_ping TEXT,
- device_folders TEXT
-);
-GO
-
-CREATE INDEX activesync_device_users_idx ON horde_activesync_device_users (device_user);
-CREATE INDEX activesync_device_users_id_idx on horde_activesync_device_users (device_id);
-GO
\ No newline at end of file
+++ /dev/null
--- If you are installing Horde for the first time, you can simply
--- direct this file to mysql as STDIN:
---
--- $ mysql --user=root --password=<MySQL-root-password> < create.mysql.sql
---
--- If you are upgrading from a previous version, you will need to comment
--- out the the user creation steps below, as well as the schemas for any
--- tables that already exist.
---
--- If you choose to grant permissions manually, note that with MySQL, PEAR DB
--- emulates sequences by automatically creating extra tables ending in _seq,
--- so the MySQL "horde" user must have CREATE privilege on the "horde"
--- database.
---
--- If you are upgrading from Horde 1.x, the Horde tables you have from
--- that version are no longer used; you may wish to either delete those
--- tables or simply recreate the database anew.
-
-USE mysql;
-
-REPLACE INTO user (host, user, password)
- VALUES (
- 'localhost',
- 'horde',
--- IMPORTANT: Change this password.
- PASSWORD('horde')
-);
-
-REPLACE INTO db (host, db, user, select_priv, insert_priv, update_priv,
- delete_priv, create_priv, drop_priv, index_priv)
- VALUES (
- 'localhost',
- 'horde',
- 'horde',
- 'Y', 'Y', 'Y', 'Y',
- 'Y', 'Y', 'Y'
-);
-
--- Make sure that priviliges are reloaded.
-FLUSH PRIVILEGES;
-
--- MySQL 3.23.x appears to have "CREATE DATABASE IF NOT EXISTS" and
--- "CREATE TABLE IF NOT EXISTS" which would be a nice way to handle
--- reinstalls gracefully (someday). For now, drop the database
--- manually to avoid CREATE errors.
-CREATE DATABASE IF NOT EXISTS horde;
-
-USE horde;
-
-CREATE TABLE IF NOT EXISTS horde_users (
- user_uid VARCHAR(255) NOT NULL,
- user_pass VARCHAR(255) NOT NULL,
- user_soft_expiration_date INT,
- user_hard_expiration_date INT,
-
- PRIMARY KEY (user_uid)
-);
-
-CREATE TABLE IF NOT EXISTS horde_signups (
- user_name VARCHAR(255) NOT NULL,
- signup_date VARCHAR(255) NOT NULL,
- signup_host VARCHAR(255) NOT NULL,
- signup_data TEXT NOT NULL,
- PRIMARY KEY user_name (user_name)
-);
-
-CREATE TABLE IF NOT EXISTS horde_groups (
- group_uid INT(10) UNSIGNED NOT NULL,
- group_name VARCHAR(255) NOT NULL,
- group_parents VARCHAR(255) NOT NULL,
- group_email VARCHAR(255),
- PRIMARY KEY (group_uid),
- UNIQUE KEY group_name (group_name)
-);
-
-CREATE TABLE IF NOT EXISTS horde_groups_members (
- group_uid INT(10) UNSIGNED NOT NULL,
- user_uid VARCHAR(255) NOT NULL
-);
-
-CREATE INDEX group_uid_idx ON horde_groups_members (group_uid);
-CREATE INDEX user_uid_idx ON horde_groups_members (user_uid);
-
-CREATE TABLE IF NOT EXISTS horde_perms (
- perm_id INT(11) NOT NULL AUTO_INCREMENT,
- perm_name VARCHAR(255) NOT NULL,
- perm_parents VARCHAR(255) NOT NULL,
- perm_data TEXT,
- PRIMARY KEY (perm_id),
- UNIQUE KEY perm_name (perm_name)
-);
-
-CREATE TABLE IF NOT EXISTS horde_prefs (
- pref_uid VARCHAR(200) NOT NULL,
- pref_scope VARCHAR(16) DEFAULT '' NOT NULL,
- pref_name VARCHAR(32) NOT NULL,
- pref_value LONGTEXT NULL,
-
- PRIMARY KEY (pref_uid, pref_scope, pref_name)
-);
-
-CREATE INDEX pref_uid_idx ON horde_prefs (pref_uid);
-CREATE INDEX pref_scope_idx ON horde_prefs (pref_scope);
-
-CREATE TABLE IF NOT EXISTS horde_datatree (
- datatree_id INT UNSIGNED NOT NULL,
- group_uid VARCHAR(255) NOT NULL,
- user_uid VARCHAR(255) NOT NULL,
- datatree_name VARCHAR(255) NOT NULL,
- datatree_parents VARCHAR(255) NOT NULL,
- datatree_order INT,
- datatree_data TEXT,
- datatree_serialized SMALLINT DEFAULT 0 NOT NULL,
-
- PRIMARY KEY (datatree_id)
-);
-
-CREATE INDEX datatree_datatree_name_idx ON horde_datatree (datatree_name);
-CREATE INDEX datatree_group_idx ON horde_datatree (group_uid);
-CREATE INDEX datatree_user_idx ON horde_datatree (user_uid);
-CREATE INDEX datatree_serialized_idx ON horde_datatree (datatree_serialized);
-CREATE INDEX datatree_parents_idx ON horde_datatree (datatree_parents);
-
-CREATE TABLE IF NOT EXISTS horde_datatree_attributes (
- datatree_id INT UNSIGNED NOT NULL,
- attribute_name VARCHAR(255) NOT NULL,
- attribute_key VARCHAR(255) DEFAULT '' NOT NULL,
- attribute_value TEXT
-);
-
-CREATE INDEX datatree_attribute_idx ON horde_datatree_attributes (datatree_id);
-CREATE INDEX datatree_attribute_name_idx ON horde_datatree_attributes (attribute_name);
-CREATE INDEX datatree_attribute_key_idx ON horde_datatree_attributes (attribute_key);
-CREATE INDEX datatree_attribute_value_idx ON horde_datatree_attributes (attribute_value(255));
-
-CREATE TABLE IF NOT EXISTS horde_tokens (
- token_address VARCHAR(100) NOT NULL,
- token_id VARCHAR(32) NOT NULL,
- token_timestamp BIGINT NOT NULL,
-
- PRIMARY KEY (token_address, token_id)
-);
-
-CREATE TABLE IF NOT EXISTS horde_vfs (
- vfs_id INT UNSIGNED NOT NULL,
- vfs_type SMALLINT UNSIGNED NOT NULL,
- vfs_path VARCHAR(255) NOT NULL,
- vfs_name VARCHAR(255) NOT NULL,
- vfs_modified BIGINT NOT NULL,
- vfs_owner VARCHAR(255) NOT NULL,
- vfs_data LONGBLOB,
-
- PRIMARY KEY (vfs_id)
-);
-
-CREATE INDEX vfs_path_idx ON horde_vfs (vfs_path);
-CREATE INDEX vfs_name_idx ON horde_vfs (vfs_name);
-
-CREATE TABLE IF NOT EXISTS horde_histories (
- history_id INT UNSIGNED NOT NULL,
- object_uid VARCHAR(255) NOT NULL,
- history_action VARCHAR(32) NOT NULL,
- history_ts BIGINT NOT NULL,
- history_desc TEXT,
- history_who VARCHAR(255),
- history_extra TEXT,
-
- PRIMARY KEY (history_id)
-);
-
-CREATE INDEX history_action_idx ON horde_histories (history_action);
-CREATE INDEX history_ts_idx ON horde_histories (history_ts);
-CREATE INDEX history_uid_idx ON horde_histories (object_uid);
-
-CREATE TABLE IF NOT EXISTS horde_sessionhandler (
- session_id VARCHAR(32) NOT NULL,
- session_lastmodified BIGINT NOT NULL,
- session_data LONGBLOB,
-
- PRIMARY KEY (session_id)
-) ENGINE = InnoDB;
-
-CREATE INDEX session_lastmodified_idx ON horde_sessionhandler (session_lastmodified);
-
-
-CREATE TABLE IF NOT EXISTS horde_syncml_map (
- syncml_syncpartner VARCHAR(255) NOT NULL,
- syncml_db VARCHAR(255) NOT NULL,
- syncml_uid VARCHAR(255) NOT NULL,
- syncml_cuid VARCHAR(255),
- syncml_suid VARCHAR(255),
- syncml_timestamp INT
-);
-
-CREATE INDEX syncml_syncpartner_idx ON horde_syncml_map (syncml_syncpartner);
-CREATE INDEX syncml_db_idx ON horde_syncml_map (syncml_db);
-CREATE INDEX syncml_uid_idx ON horde_syncml_map (syncml_uid);
-CREATE INDEX syncml_cuid_idx ON horde_syncml_map (syncml_cuid);
-CREATE INDEX syncml_suid_idx ON horde_syncml_map (syncml_suid);
-
-CREATE TABLE IF NOT EXISTS horde_syncml_anchors(
- syncml_syncpartner VARCHAR(255) NOT NULL,
- syncml_db VARCHAR(255) NOT NULL,
- syncml_uid VARCHAR(255) NOT NULL,
- syncml_clientanchor VARCHAR(255),
- syncml_serveranchor VARCHAR(255)
-);
-
-CREATE INDEX syncml_anchors_syncpartner_idx ON horde_syncml_anchors (syncml_syncpartner);
-CREATE INDEX syncml_anchors_db_idx ON horde_syncml_anchors (syncml_db);
-CREATE INDEX syncml_anchors_uid_idx ON horde_syncml_anchors (syncml_uid);
-
-CREATE TABLE IF NOT EXISTS horde_alarms (
- alarm_id VARCHAR(250) NOT NULL,
- alarm_uid VARCHAR(250) NOT NULL,
- alarm_start DATETIME NOT NULL,
- alarm_end DATETIME,
- alarm_methods VARCHAR(255),
- alarm_params TEXT,
- alarm_title VARCHAR(255) NOT NULL,
- alarm_text TEXT,
- alarm_snooze DATETIME,
- alarm_dismissed TINYINT(1) DEFAULT 0 NOT NULL,
- alarm_internal TEXT
-);
-
-CREATE INDEX alarm_id_idx ON horde_alarms (alarm_id);
-CREATE INDEX alarm_user_idx ON horde_alarms (alarm_uid);
-CREATE INDEX alarm_start_idx ON horde_alarms (alarm_start);
-CREATE INDEX alarm_end_idx ON horde_alarms (alarm_end);
-CREATE INDEX alarm_snooze_idx ON horde_alarms (alarm_snooze);
-CREATE INDEX alarm_dismissed_idx ON horde_alarms (alarm_dismissed);
-
-CREATE TABLE IF NOT EXISTS horde_cache (
- cache_id VARCHAR(32) NOT NULL,
- cache_timestamp BIGINT NOT NULL,
- cache_expiration BIGINT NOT NULL,
- cache_data LONGBLOB,
-
- PRIMARY KEY (cache_id)
-);
-
-CREATE TABLE IF NOT EXISTS horde_locks (
- lock_id VARCHAR(36) NOT NULL,
- lock_owner VARCHAR(32) NOT NULL,
- lock_scope VARCHAR(32) NOT NULL,
- lock_principal VARCHAR(255) NOT NULL,
- lock_origin_timestamp BIGINT NOT NULL,
- lock_update_timestamp BIGINT NOT NULL,
- lock_expiry_timestamp BIGINT NOT NULL,
- lock_type TINYINT UNSIGNED NOT NULL,
-
- PRIMARY KEY (lock_id)
-);
-
-CREATE TABLE horde_activesync_state (
- sync_time INTEGER,
- sync_key VARCHAR(255) NOT NULL,
- sync_data LONGTEXT,
- sync_devid VARCHAR(255),
- sync_folderid VARCHAR(255),
- sync_user VARCHAR(255) NOT NULL,
---
- PRIMARY KEY (sync_key)
-);
-
-CREATE INDEX activesync_state_folder_idx ON horde_activesync_state (sync_folderid);
-CREATE INDEX activesync_state_devid_idx ON horde_activesync_state (sync_devid);
-
-CREATE TABLE horde_activesync_map (
- message_uid VARCHAR(255) NOT NULL,
- sync_modtime INTEGER,
- sync_key VARCHAR(255) NOT NULL,
- sync_devid VARCHAR(255) NOT NULL,
- sync_folderid VARCHAR(255) NOT NULL,
- sync_user VARCHAR(255) NOT NULL
-);
-
-CREATE INDEX activesync_map_devid_idx ON horde_activesync_map (sync_devid);
-CREATE INDEX activesync_map_message_idx ON horde_activesync_map (message_uid);
-CREATE INDEX activesync_map_user_idx ON horde_activesync_map (sync_user);
-
-
-CREATE TABLE horde_activesync_device (
- device_id VARCHAR(255) NOT NULL,
- device_type VARCHAR(255) NOT NULL,
- device_agent VARCHAR(255) NOT NULL,
- device_supported TEXT,
- device_policykey BIGINT DEFAULT 0,
- device_rwstatus INTEGER,
---
- PRIMARY KEY (device_id)
-);
-
-CREATE TABLE horde_activesync_device_users (
- device_id VARCHAR(255) NOT NULL,
- device_user VARCHAR(255) NOT NULL,
- device_ping TEXT,
- device_folders TEXT
-);
-
-CREATE INDEX activesync_device_users_idx ON horde_activesync_device_users (device_user);
-CREATE INDEX activesync_device_users_id_idx on horde_activesync_device_users (device_id);
-
--- Done.
+++ /dev/null
-set doc off;
-set sqlblanklines on;
-
-/**
- * Oracle Table Creation Scripts.
- *
- * @author Miguel Ward <mward@aluar.com.ar>
- *
- * This sql creates the Horde SQL tables in an Oracle 8.x database. Should
- * work with Oracle 9.x (and Oracle7 using varchar2).
- *
- * Notes:
- *
- * * Obviously you must have Oracle installed on this machine AND you must
- * have compiled PHP with Oracle (you included --with-oci8-instant
- * --with-oci8 or in the build arguments for PHP, or uncommented the oci8
- * extension in php.ini).
- *
- * * If you don't use the Instant Client, make sure that the user that starts
- * up Apache (usually nobody or www-data) has the following environment
- * variables defined:
- *
- * export ORACLE_HOME=/home/oracle/OraHome1
- * export ORA_NLS=/home/oracle/OraHome1/ocommon/nls/admin/data
- * export ORA_NLS33=/home/oracle/OraHome1/ocommon/nls/admin/data
- * export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
- *
- * YOU MUST CUSTOMIZE THESE VALUES TO BE APPROPRIATE TO YOUR INSTALLATION
- *
- * You can include these variables in the user's local .profile or in
- * /etc/profile, etc.
- *
- * * No grants are necessary since we connect as the owner of the tables. If
- * you wish you can adapt the creation of tables to include tablespace and
- * storage information. Since we include none it will use the default
- * tablespace values for the user creating these tables. Same with the
- * indexes (in theory these should use a different tablespace).
- *
- * * There is no need to shut down and start up the database!
- */
-
-rem conn horde/&horde_password@database
-
-/**
- * This is the Horde users table, needed only if you are using SQL
- * authentication.
- */
-
-CREATE TABLE horde_users (
- user_uid VARCHAR2(255) NOT NULL,
- user_pass VARCHAR2(255) NOT NULL,
- user_soft_expiration_date NUMBER(16),
- user_hard_expiration_date NUMBER(16),
-
- PRIMARY KEY (user_uid)
-);
-
-CREATE TABLE horde_signups (
- user_name VARCHAR2(255) NOT NULL,
- signup_date NUMBER(16) NOT NULL,
- signup_host VARCHAR2(255) NOT NULL,
- signup_data CLOB NOT NULL,
- PRIMARY KEY (user_name)
-);
-
-CREATE TABLE horde_groups (
- group_uid NUMBER(16) NOT NULL,
- group_name VARCHAR2(255) NOT NULL UNIQUE,
- group_parents VARCHAR2(255) NOT NULL,
- group_email VARCHAR2(255),
- PRIMARY KEY (group_uid)
-);
-
-CREATE TABLE horde_groups_members (
- group_uid NUMBER(16) NOT NULL,
- user_uid VARCHAR2(255) NOT NULL
-);
-
-CREATE INDEX group_uid_idx ON horde_groups_members (group_uid);
-CREATE INDEX user_uid_idx ON horde_groups_members (user_uid);
-
-CREATE TABLE horde_perms (
- perm_id NUMBER(16) NOT NULL,
- perm_name VARCHAR2(255) NOT NULL UNIQUE,
- perm_parents VARCHAR2(255) NOT NULL,
- perm_data CLOB,
- PRIMARY KEY (perm_id)
-);
-CREATE SEQUENCE horde_perms_id_seq;
-CREATE TRIGGER horde_perms_id_trigger
-BEFORE INSERT ON horde_perms
-FOR EACH ROW
-BEGIN
-SELECT horde_perms_id_seq.nextval INTO :new.permid FROM dual;
-END;
-
-/**
- * This is the Horde preferences table, holding all of the user-specific
- * options for every Horde user.
- *
- * pref_uid is the username.
- * pref_scope is the application the pref belongs to.
- * pref_name is the name of the variable to save.
- * pref_value is the value saved (can be very long).
- *
- * We use a CLOB column so that longer column values are supported.
- *
- * If still using Oracle 7 this should work but you have to use
- * VARCHAR2(2000) which is the limit imposed by said version.
- */
-
-CREATE TABLE horde_prefs (
- pref_uid VARCHAR2(255) NOT NULL,
- pref_scope VARCHAR2(16) NOT NULL,
- pref_name VARCHAR2(32) NOT NULL,
--- See above notes on CLOBs.
- pref_value CLOB,
-
- PRIMARY KEY (pref_uid, pref_scope, pref_name)
-);
-
-CREATE INDEX pref_uid_idx ON horde_prefs (pref_uid);
-CREATE INDEX pref_scope_idx ON horde_prefs (pref_scope);
-
-
-/**
- * The DataTree tables are used for holding hierarchical data such as Groups,
- * Permissions, and data for some Horde applications.
- */
-
-CREATE TABLE horde_datatree (
- datatree_id NUMBER(16) NOT NULL,
- group_uid VARCHAR2(255) NOT NULL,
- user_uid VARCHAR2(255),
- datatree_name VARCHAR2(255) NOT NULL,
- datatree_parents VARCHAR2(255),
- datatree_order NUMBER(16),
- datatree_data CLOB,
- datatree_serialized NUMBER(1) DEFAULT 0 NOT NULL,
-
- PRIMARY KEY (datatree_id)
-);
-
-CREATE INDEX datatree_datatree_name_idx ON horde_datatree (datatree_name);
-CREATE INDEX datatree_group_idx ON horde_datatree (group_uid);
-CREATE INDEX datatree_user_idx ON horde_datatree (user_uid);
-CREATE INDEX datatree_order_idx ON horde_datatree (datatree_order);
-CREATE INDEX datatree_serialized_idx ON horde_datatree (datatree_serialized);
-CREATE INDEX datatree_parents_idx ON horde_datatree (datatree_parents);
-
-CREATE TABLE horde_datatree_attributes (
- datatree_id NUMBER(16) NOT NULL,
- attribute_name VARCHAR2(255) NOT NULL,
- attribute_key VARCHAR2(255),
- attribute_value VARCHAR2(4000)
-);
-
-CREATE INDEX datatree_attribute_idx ON horde_datatree_attributes (datatree_id);
-CREATE INDEX datatree_attribute_name_idx ON horde_datatree_attributes (attribute_name);
-CREATE INDEX datatree_attribute_key_idx ON horde_datatree_attributes (attribute_key);
-CREATE INDEX datatree_attribute_value_idx ON horde_datatree_attributes (attribute_value);
-
-
-CREATE TABLE horde_tokens (
- token_address VARCHAR2(100) NOT NULL,
- token_id VARCHAR2(32) NOT NULL,
- token_timestamp NUMBER(16) NOT NULL,
-
- PRIMARY KEY (token_address, token_id)
-);
-
-
-CREATE TABLE horde_vfs (
- vfs_id NUMBER(16) NOT NULL,
- vfs_type NUMBER(8) NOT NULL,
- vfs_path VARCHAR2(255),
- vfs_name VARCHAR2(255) NOT NULL,
- vfs_modified NUMBER(16) NOT NULL,
- vfs_owner VARCHAR2(255),
- vfs_data BLOB,
-
- PRIMARY KEY (vfs_id)
-);
-
-CREATE INDEX vfs_path_idx ON horde_vfs (vfs_path);
-CREATE INDEX vfs_name_idx ON horde_vfs (vfs_name);
-
-
-CREATE TABLE horde_histories (
- history_id NUMBER(16) NOT NULL,
- object_uid VARCHAR2(255) NOT NULL,
- history_action VARCHAR2(32) NOT NULL,
- history_ts NUMBER(16) NOT NULL,
- history_desc CLOB,
- history_who VARCHAR2(255),
- history_extra CLOB,
-
- PRIMARY KEY (history_id)
-);
-
-CREATE INDEX history_action_idx ON horde_histories (history_action);
-CREATE INDEX history_ts_idx ON horde_histories (history_ts);
-CREATE INDEX history_uid_idx ON horde_histories (object_uid);
-
-
-CREATE TABLE horde_sessionhandler (
- session_id VARCHAR2(32) NOT NULL,
- session_lastmodified NUMBER(16) NOT NULL,
- session_data BLOB,
-
- PRIMARY KEY (session_id)
-);
-
-CREATE INDEX session_lastmodified_idx ON horde_sessionhandler (session_lastmodified);
-
-
-CREATE TABLE horde_syncml_map (
- syncml_syncpartner VARCHAR2(255) NOT NULL,
- syncml_db VARCHAR2(255) NOT NULL,
- syncml_uid VARCHAR2(255) NOT NULL,
- syncml_cuid VARCHAR2(255),
- syncml_suid VARCHAR2(255),
- syncml_timestamp NUMBER(16)
-);
-
-CREATE INDEX syncml_syncpartner_idx ON horde_syncml_map (syncml_syncpartner);
-CREATE INDEX syncml_db_idx ON horde_syncml_map (syncml_db);
-CREATE INDEX syncml_uid_idx ON horde_syncml_map (syncml_uid);
-CREATE INDEX syncml_cuid_idx ON horde_syncml_map (syncml_cuid);
-CREATE INDEX syncml_suid_idx ON horde_syncml_map (syncml_suid);
-
-CREATE TABLE horde_syncml_anchors(
- syncml_syncpartner VARCHAR2(255) NOT NULL,
- syncml_db VARCHAR2(255) NOT NULL,
- syncml_uid VARCHAR2(255) NOT NULL,
- syncml_clientanchor VARCHAR2(255),
- syncml_serveranchor VARCHAR2(255)
-);
-
-CREATE INDEX syncml_anchors_syncpartner_idx ON horde_syncml_anchors (syncml_syncpartner);
-CREATE INDEX syncml_anchors_db_idx ON horde_syncml_anchors (syncml_db);
-CREATE INDEX syncml_anchors_uid_idx ON horde_syncml_anchors (syncml_uid);
-
-
-CREATE TABLE horde_alarms (
- alarm_id VARCHAR2(255) NOT NULL,
- alarm_uid VARCHAR2(255),
- alarm_start DATE NOT NULL,
- alarm_end DATE,
- alarm_methods VARCHAR2(255),
- alarm_params CLOB,
- alarm_title VARCHAR2(255) NOT NULL,
- alarm_text CLOB,
- alarm_snooze DATE,
- alarm_dismissed NUMBER(1) DEFAULT 0 NOT NULL,
- alarm_internal CLOB
-);
-
-CREATE INDEX alarm_id_idx ON horde_alarms (alarm_id);
-CREATE INDEX alarm_user_idx ON horde_alarms (alarm_uid);
-CREATE INDEX alarm_start_idx ON horde_alarms (alarm_start);
-CREATE INDEX alarm_end_idx ON horde_alarms (alarm_end);
-CREATE INDEX alarm_snooze_idx ON horde_alarms (alarm_snooze);
-CREATE INDEX alarm_dismissed_idx ON horde_alarms (alarm_dismissed);
-
-CREATE TABLE horde_cache (
- cache_id VARCHAR2(32) NOT NULL,
- cache_timestamp NUMBER(16) NOT NULL,
- cache_expiration NUMBER(16) NOT NULL,
- cache_data BLOB,
---
- PRIMARY KEY (cache_id)
-);
-
-CREATE TABLE horde_locks (
- lock_id VARCHAR2(36) NOT NULL,
- lock_owner VARCHAR2(32) NOT NULL,
- lock_scope VARCHAR2(32) NOT NULL,
- lock_principal VARCHAR2(255) NOT NULL,
- lock_origin_timestamp NUMBER(16) NOT NULL,
- lock_update_timestamp NUMBER(16) NOT NULL,
- lock_expiry_timestamp NUMBER(16) NOT NULL,
- lock_type NUMBER(8) NOT NULL,
-
- PRIMARY KEY (lock_id)
-);
-
-CREATE TABLE horde_activesync_state (
- sync_time NUMBER(16),
- sync_key VARCHAR2(255) NOT NULL,
- sync_data CLOB,
- sync_devid VARCHAR2(255),
- sync_folderid VARCHAR2(255),
- sync_user VARCHAR2(255) NOT NULL,
---
- PRIMARY KEY (sync_key)
-);
-
-CREATE INDEX activesync_state_folder_idx ON horde_activesync_state (sync_folderid);
-CREATE INDEX activesync_state_devid_idx ON horde_activesync_state (sync_devid);
-
-CREATE TABLE horde_activesync_map (
- message_uid VARCHAR2(255) NOT NULL,
- sync_modtime NUMBER(16),
- sync_key VARCHAR2(255) NOT NULL,
- sync_devid VARCHAR2(255) NOT NULL,
- sync_folderid VARCHAR2(255) NOT NULL,
- sync_user VARCHAR2(255) NOT NULL
-);
-
-CREATE INDEX activesync_map_devid_idx ON horde_activesync_map (sync_devid);
-CREATE INDEX activesync_map_message_idx ON horde_activesync_map (message_uid);
-CREATE INDEX activesync_map_user_idx ON horde_activesync_map (sync_user);
-
-
-CREATE TABLE horde_activesync_device (
- device_id VARCHAR2(255) NOT NULL,
- device_type VARCHAR2(255) NOT NULL,
- device_agent VARCHAR2(255) NOT NULL,
- device_supported CLOB,
- device_policykey NUMBER(16) DEFAULT 0,
- device_rwstatus NUMBER(8),
---
- PRIMARY KEY (device_id)
-);
-
-CREATE TABLE horde_activesync_device_users (
- device_id VARCHAR2(255) NOT NULL,
- device_user VARCHAR2(255) NOT NULL,
- device_ping CLOB,
- device_folders CLOB
-);
-CREATE INDEX activesync_device_users_idx ON horde_activesync_device_users (device_user);
-CREATE INDEX activesync_device_users_id_idx on horde_activesync_device_users (device_id);
-
-exit
+++ /dev/null
--- Uncomment the ALTER line below and change the password. Then run as:
---
--- $ psql -d template1 -f create.pgsql.sql
-
-CREATE USER horde;
--- ALTER USER horde WITH PASSWORD 'pass';
-
-CREATE DATABASE horde OWNER horde;
-
-\c horde horde;
-
-BEGIN;
-
-CREATE TABLE horde_users (
- user_uid VARCHAR(255) NOT NULL,
- user_pass VARCHAR(255) NOT NULL,
- user_soft_expiration_date INTEGER,
- user_hard_expiration_date INTEGER,
---
- PRIMARY KEY (user_uid)
-);
-
-CREATE TABLE horde_signups (
- user_name VARCHAR(255) NOT NULL,
- signup_date INTEGER NOT NULL,
- signup_host VARCHAR(255) NOT NULL,
- signup_data TEXT NOT NULL,
- PRIMARY KEY (user_name)
-);
-
-CREATE TABLE horde_groups (
- group_uid INTEGER NOT NULL,
- group_name VARCHAR(255) NOT NULL UNIQUE,
- group_parents VARCHAR(255) NOT NULL,
- group_email VARCHAR(255),
- PRIMARY KEY (group_uid)
-);
-
-CREATE TABLE horde_groups_members (
- group_uid INTEGER NOT NULL,
- user_uid VARCHAR(255) NOT NULL
-);
-
-CREATE INDEX group_uid_idx ON horde_groups_members (group_uid);
-CREATE INDEX user_uid_idx ON horde_groups_members (user_uid);
-
-CREATE SEQUENCE horde_perms_id_seq;
-CREATE TABLE horde_perms (
- perm_id SERIAL UNIQUE,
- perm_name VARCHAR(255) NOT NULL UNIQUE,
- perm_parents VARCHAR(255) NOT NULL,
- perm_data TEXT,
- PRIMARY KEY (perm_id)
-);
-
-CREATE TABLE horde_prefs (
- pref_uid VARCHAR(255) NOT NULL,
- pref_scope VARCHAR(16) DEFAULT '' NOT NULL,
- pref_name VARCHAR(32) NOT NULL,
--- BYTEA needed because Postgres TEXT type doesn't support null chars.
- pref_value BYTEA,
---
- PRIMARY KEY (pref_uid, pref_scope, pref_name)
-);
-
-CREATE INDEX pref_uid_idx ON horde_prefs (pref_uid);
-CREATE INDEX pref_scope_idx ON horde_prefs (pref_scope);
-
-CREATE TABLE horde_datatree (
- datatree_id INT NOT NULL,
- group_uid VARCHAR(255) NOT NULL,
- user_uid VARCHAR(255) NOT NULL,
- datatree_name VARCHAR(255) NOT NULL,
- datatree_parents VARCHAR(255) NOT NULL,
- datatree_order INT,
- datatree_data TEXT,
- datatree_serialized SMALLINT DEFAULT 0 NOT NULL,
-
- PRIMARY KEY (datatree_id)
-);
-
-CREATE INDEX datatree_datatree_name_idx ON horde_datatree (datatree_name);
-CREATE INDEX datatree_group_idx ON horde_datatree (group_uid);
-CREATE INDEX datatree_user_idx ON horde_datatree (user_uid);
-CREATE INDEX datatree_order_idx ON horde_datatree (datatree_order);
-CREATE INDEX datatree_serialized_idx ON horde_datatree (datatree_serialized);
-CREATE INDEX datatree_parents_idx ON horde_datatree (datatree_parents);
-
-CREATE TABLE horde_datatree_attributes (
- datatree_id INT NOT NULL,
- attribute_name VARCHAR(255) NOT NULL,
- attribute_key VARCHAR(255),
- attribute_value TEXT
-);
-
-CREATE INDEX datatree_attribute_idx ON horde_datatree_attributes USING HASH(datatree_id);
-CREATE INDEX datatree_attribute_name_idx ON horde_datatree_attributes (attribute_name);
-CREATE INDEX datatree_attribute_key_idx ON horde_datatree_attributes (attribute_key);
-CREATE INDEX datatree_attribute_value_idx ON horde_datatree_attributes (attribute_value);
-
-CREATE TABLE horde_tokens (
- token_address VARCHAR(100) NOT NULL,
- token_id VARCHAR(32) NOT NULL,
- token_timestamp BIGINT NOT NULL,
---
- PRIMARY KEY (token_address, token_id)
-);
-
-CREATE TABLE horde_vfs (
- vfs_id INT NOT NULL,
- vfs_type SMALLINT NOT NULL,
- vfs_path VARCHAR(255) NOT NULL,
- vfs_name VARCHAR(255) NOT NULL,
- vfs_modified BIGINT NOT NULL,
- vfs_owner VARCHAR(255) NOT NULL,
- vfs_data TEXT,
-
- PRIMARY KEY (vfs_id)
-);
-
-CREATE INDEX vfs_path_idx ON horde_vfs (vfs_path);
-CREATE INDEX vfs_name_idx ON horde_vfs (vfs_name);
-
-CREATE TABLE horde_histories (
- history_id INT NOT NULL,
- object_uid VARCHAR(255) NOT NULL,
- history_action VARCHAR(32) NOT NULL,
- history_ts BIGINT NOT NULL,
- history_desc TEXT,
- history_who VARCHAR(255),
- history_extra TEXT,
---
- PRIMARY KEY (history_id)
-);
-
-CREATE INDEX history_action_idx ON horde_histories (history_action);
-CREATE INDEX history_ts_idx ON horde_histories (history_ts);
-CREATE INDEX history_uid_idx ON horde_histories (object_uid);
-
-CREATE TABLE horde_sessionhandler (
- session_id VARCHAR(32) NOT NULL,
- session_lastmodified BIGINT NOT NULL,
- session_data TEXT,
- PRIMARY KEY (session_id)
-);
-
-CREATE INDEX session_lastmodified_idx ON horde_sessionhandler (session_lastmodified);
-
-CREATE TABLE horde_syncml_map (
- syncml_syncpartner VARCHAR(255) NOT NULL,
- syncml_db VARCHAR(255) NOT NULL,
- syncml_uid VARCHAR(255) NOT NULL,
- syncml_cuid VARCHAR(255),
- syncml_suid VARCHAR(255),
- syncml_timestamp BIGINT
-);
-
-CREATE INDEX syncml_syncpartner_idx ON horde_syncml_map (syncml_syncpartner);
-CREATE INDEX syncml_db_idx ON horde_syncml_map (syncml_db);
-CREATE INDEX syncml_uid_idx ON horde_syncml_map (syncml_uid);
-CREATE INDEX syncml_cuid_idx ON horde_syncml_map (syncml_cuid);
-CREATE INDEX syncml_suid_idx ON horde_syncml_map (syncml_suid);
-
-CREATE TABLE horde_syncml_anchors(
- syncml_syncpartner VARCHAR(255) NOT NULL,
- syncml_db VARCHAR(255) NOT NULL,
- syncml_uid VARCHAR(255) NOT NULL,
- syncml_clientanchor VARCHAR(255),
- syncml_serveranchor VARCHAR(255)
-);
-
-CREATE INDEX syncml_anchors_syncpartner_idx ON horde_syncml_anchors (syncml_syncpartner);
-CREATE INDEX syncml_anchors_db_idx ON horde_syncml_anchors (syncml_db);
-CREATE INDEX syncml_anchors_uid_idx ON horde_syncml_anchors (syncml_uid);
-
-CREATE TABLE horde_alarms (
- alarm_id VARCHAR(255) NOT NULL,
- alarm_uid VARCHAR(255),
- alarm_start TIMESTAMP NOT NULL,
- alarm_end TIMESTAMP,
- alarm_methods VARCHAR(255),
- alarm_params TEXT,
- alarm_title VARCHAR(255) NOT NULL,
- alarm_text TEXT,
- alarm_snooze TIMESTAMP,
- alarm_dismissed SMALLINT DEFAULT 0 NOT NULL,
- alarm_internal TEXT
-);
-
-CREATE INDEX alarm_id_idx ON horde_alarms (alarm_id);
-CREATE INDEX alarm_user_idx ON horde_alarms (alarm_uid);
-CREATE INDEX alarm_start_idx ON horde_alarms (alarm_start);
-CREATE INDEX alarm_end_idx ON horde_alarms (alarm_end);
-CREATE INDEX alarm_snooze_idx ON horde_alarms (alarm_snooze);
-CREATE INDEX alarm_dismissed_idx ON horde_alarms (alarm_dismissed);
-
-CREATE TABLE horde_cache (
- cache_id VARCHAR(32) NOT NULL,
- cache_timestamp BIGINT NOT NULL,
- cache_expiration BIGINT NOT NULL,
- cache_data TEXT,
---
- PRIMARY KEY (cache_id)
-);
-
-CREATE TABLE horde_locks (
- lock_id VARCHAR(36) NOT NULL,
- lock_owner VARCHAR(32) NOT NULL,
- lock_scope VARCHAR(32) NOT NULL,
- lock_principal VARCHAR(255) NOT NULL,
- lock_origin_timestamp BIGINT NOT NULL,
- lock_update_timestamp BIGINT NOT NULL,
- lock_expiry_timestamp BIGINT NOT NULL,
- lock_type SMALLINT NOT NULL,
-
- PRIMARY KEY (lock_id)
-);
-
-CREATE TABLE horde_activesync_state (
- sync_time INT,
- sync_key VARCHAR(255) NOT NULL,
- sync_data TEXT,
- sync_devid VARCHAR(255),
- sync_folderid VARCHAR(255),
- sync_user VARCHAR(255) NOT NULL,
---
- PRIMARY KEY (sync_key)
-);
-
-CREATE INDEX activesync_state_folder_idx ON horde_activesync_state (sync_folderid);
-CREATE INDEX activesync_state_devid_idx ON horde_activesync_state (sync_devid);
-
-CREATE TABLE horde_activesync_map (
- message_uid VARCHAR(255) NOT NULL,
- sync_modtime INT,
- sync_key VARCHAR(255) NOT NULL,
- sync_devid VARCHAR(255) NOT NULL,
- sync_folderid VARCHAR(255) NOT NULL,
- sync_user VARCHAR(255) NOT NULL
-);
-
-CREATE INDEX activesync_map_devid_idx ON horde_activesync_map (sync_devid);
-CREATE INDEX activesync_map_message_idx ON horde_activesync_map (message_uid);
-CREATE INDEX activesync_map_user_idx ON horde_activesync_map (sync_user);
-
-CREATE TABLE horde_activesync_device (
- device_id VARCHAR(255) NOT NULL,
- device_type VARCHAR(255) NOT NULL,
- device_agent VARCHAR(255) NOT NULL,
- device_supported TEXT,
- device_policykey BIGINT DEFAULT 0,
- device_rwstatus INT,
---
- PRIMARY KEY (device_id)
-);
-
-CREATE TABLE horde_activesync_device_users (
- device_id VARCHAR(255) NOT NULL,
- device_user VARCHAR(255) NOT NULL,
- device_ping TEXT,
- device_folders TEXT);
-
-CREATE INDEX activesync_device_users_idx ON horde_activesync_device_users (device_user);
-CREATE INDEX activesync_device_users_id_idx on horde_activesync_device_users (device_id);
-
-COMMIT;
+++ /dev/null
-CREATE TABLE horde_users (
- user_uid VARCHAR(255) NOT NULL,
- user_pass VARCHAR(255) NOT NULL,
- user_soft_expiration_date INTEGER,
- user_hard_expiration_date INTEGER,
---
- PRIMARY KEY (user_uid)
-);
-
-CREATE TABLE horde_signups (
- user_name VARCHAR(255) NOT NULL,
- signup_date INTEGER NOT NULL,
- signup_host VARCHAR(255) NOT NULL,
- signup_data TEXT NOT NULL,
- PRIMARY KEY (user_name)
-);
-
-CREATE TABLE horde_groups (
- group_uid INTEGER NOT NULL,
- group_name VARCHAR(255) NOT NULL,
- group_parents VARCHAR(255) NOT NULL,
- group_email VARCHAR(255),
- PRIMARY KEY (group_uid)
-);
-
-CREATE TABLE horde_groups_members (
- group_uid INTEGER NOT NULL,
- user_uid VARCHAR(255) NOT NULL
-);
-
-CREATE INDEX group_uid_idx ON horde_groups_members (group_uid);
-CREATE INDEX user_uid_idx ON horde_groups_members (user_uid);
-
-
-CREATE TABLE horde_perms (
- perm_id INTEGER NOT NULL AUTO_INCREMENT,
- perm_name VARCHAR(255) NOT NULL,
- perm_parents VARCHAR(255) NOT NULL,
- perm_data TEXT,
- PRIMARY KEY (perm_id)
-);
-
-
-CREATE TABLE horde_prefs (
- pref_uid VARCHAR(255) NOT NULL,
- pref_scope VARCHAR(16) DEFAULT '' NOT NULL,
- pref_name VARCHAR(32) NOT NULL,
- pref_value TEXT,
---
- PRIMARY KEY (pref_uid, pref_scope, pref_name)
-);
-
-
-CREATE TABLE horde_datatree (
- datatree_id INT UNSIGNED NOT NULL,
- group_uid VARCHAR(255) NOT NULL,
- user_uid VARCHAR(255) NOT NULL,
- datatree_name VARCHAR(255) NOT NULL,
- datatree_parents VARCHAR(255) NOT NULL,
- datatree_order INT,
-
--- There is no portable way to do this apparently. If your db doesn't
--- allow TEXT columns, then maybe it allows large VARCHAR columns, so
--- try the second line.
---
- datatree_data TEXT,
--- datatree_data VARCHAR(4096),
-
- datatree_serialized SMALLINT DEFAULT 0 NOT NULL,
-
- PRIMARY KEY (datatree_id)
-);
-
-CREATE INDEX datatree_datatree_name_idx ON horde_datatree (datatree_name);
-CREATE INDEX datatree_group_idx ON horde_datatree (group_uid);
-CREATE INDEX datatree_user_idx ON horde_datatree (user_uid);
-CREATE INDEX datatree_order_idx ON horde_datatree (datatree_order);
-CREATE INDEX datatree_serialized_idx ON horde_datatree (datatree_serialized);
-CREATE INDEX datatree_parents_idx ON horde_datatree (datatree_parents);
-
-CREATE TABLE horde_datatree_attributes (
- datatree_id INT UNSIGNED NOT NULL,
- attribute_name VARCHAR(255) NOT NULL,
- attribute_key VARCHAR(255),
- attribute_value TEXT
-);
-
-CREATE INDEX datatree_attribute_idx ON horde_datatree_attributes (datatree_id);
-CREATE INDEX datatree_attribute_name_idx ON horde_datatree_attributes (attribute_name);
-CREATE INDEX datatree_attribute_key_idx ON horde_datatree_attributes (attribute_key);
-CREATE INDEX datatree_attribute_value_idx ON horde_datatree_attributes (attribute_value);
-
-
-CREATE TABLE horde_tokens (
- token_address VARCHAR(100) NOT NULL,
- token_id VARCHAR(32) NOT NULL,
- token_timestamp BIGINT NOT NULL,
---
- PRIMARY KEY (token_address, token_id)
-);
-
-
-CREATE TABLE horde_vfs (
- vfs_id INT UNSIGNED NOT NULL,
- vfs_type SMALLINT UNSIGNED NOT NULL,
- vfs_path VARCHAR(255) NOT NULL,
- vfs_name VARCHAR(255) NOT NULL,
- vfs_modified BIGINT NOT NULL,
- vfs_owner VARCHAR(255) NOT NULL,
- vfs_data LONGBLOB,
--- Or, on some DBMS systems:
--- vfs_data IMAGE,
- PRIMARY KEY (vfs_id)
-);
-
-CREATE INDEX vfs_path_idx ON horde_vfs (vfs_path);
-CREATE INDEX vfs_name_idx ON horde_vfs (vfs_name);
-
-
-CREATE TABLE horde_histories (
- history_id INT UNSIGNED NOT NULL,
- object_uid VARCHAR(255) NOT NULL,
- history_action VARCHAR(32) NOT NULL,
- history_ts BIGINT NOT NULL,
- history_desc TEXT,
- history_who VARCHAR(255),
- history_extra TEXT,
---
- PRIMARY KEY (history_id)
-);
-
-CREATE INDEX history_action_idx ON horde_histories (history_action);
-CREATE INDEX history_ts_idx ON horde_histories (history_ts);
-CREATE INDEX history_uid_idx ON horde_histories (object_uid);
-
-
-CREATE TABLE horde_sessionhandler (
- session_id VARCHAR(32) NOT NULL,
- session_lastmodified BIGINT NOT NULL,
- session_data LONGBLOB,
--- Or, on some DBMS systems:
--- session_data IMAGE,
-
- PRIMARY KEY (session_id)
-);
-
-CREATE INDEX session_lastmodified_idx ON horde_sessionhandler (session_lastmodified);
-
-
-CREATE TABLE horde_syncml_map (
- syncml_syncpartner VARCHAR(255) NOT NULL,
- syncml_db VARCHAR(255) NOT NULL,
- syncml_uid VARCHAR(255) NOT NULL,
- syncml_cuid VARCHAR(255),
- syncml_suid VARCHAR(255),
- syncml_timestamp BIGINT
-);
-
-CREATE INDEX syncml_syncpartner_idx ON horde_syncml_map (syncml_syncpartner);
-CREATE INDEX syncml_db_idx ON horde_syncml_map (syncml_db);
-CREATE INDEX syncml_uid_idx ON horde_syncml_map (syncml_uid);
-CREATE INDEX syncml_cuid_idx ON horde_syncml_map (syncml_cuid);
-CREATE INDEX syncml_suid_idx ON horde_syncml_map (syncml_suid);
-
-CREATE TABLE horde_syncml_anchors(
- syncml_syncpartner VARCHAR(255) NOT NULL,
- syncml_db VARCHAR(255) NOT NULL,
- syncml_uid VARCHAR(255) NOT NULL,
- syncml_clientanchor VARCHAR(255),
- syncml_serveranchor VARCHAR(255)
-);
-
-CREATE INDEX syncml_anchors_syncpartner_idx ON horde_syncml_anchors (syncml_syncpartner);
-CREATE INDEX syncml_anchors_db_idx ON horde_syncml_anchors (syncml_db);
-CREATE INDEX syncml_anchors_uid_idx ON horde_syncml_anchors (syncml_uid);
-
-
-CREATE TABLE horde_alarms (
- alarm_id VARCHAR(255) NOT NULL,
- alarm_uid VARCHAR(255),
- alarm_start DATETIME NOT NULL,
- alarm_end DATETIME,
- alarm_methods VARCHAR(255),
- alarm_params TEXT,
- alarm_title VARCHAR(255) NOT NULL,
- alarm_text TEXT,
- alarm_snooze DATETIME,
- alarm_dismissed SMALLINT DEFAULT 0 NOT NULL,
- alarm_internal TEXT
-);
-
-CREATE INDEX alarm_id_idx ON horde_alarms (alarm_id);
-CREATE INDEX alarm_user_idx ON horde_alarms (alarm_uid);
-CREATE INDEX alarm_start_idx ON horde_alarms (alarm_start);
-CREATE INDEX alarm_end_idx ON horde_alarms (alarm_end);
-CREATE INDEX alarm_snooze_idx ON horde_alarms (alarm_snooze);
-CREATE INDEX alarm_dismissed_idx ON horde_alarms (alarm_dismissed);
-
-
-CREATE TABLE horde_cache (
- cache_id VARCHAR(32) NOT NULL,
- cache_timestamp BIGINT NOT NULL,
- cache_expiration BIGINT NOT NULL,
- cache_data LONGBLOB,
--- Or on some other DBMS systems:
--- cache_data IMAGE,
-
- PRIMARY KEY (cache_id)
-);
-
-CREATE TABLE horde_locks (
- lock_id VARCHAR(36) NOT NULL,
- lock_owner VARCHAR(32) NOT NULL,
- lock_scope VARCHAR(32) NOT NULL,
- lock_principal VARCHAR(255) NOT NULL,
- lock_origin_timestamp BIGINT NOT NULL,
- lock_update_timestamp BIGINT NOT NULL,
- lock_expiry_timestamp BIGINT NOT NULL,
- lock_type SMALLINT UNSIGNED NOT NULL,
-
- PRIMARY KEY (lock_id)
-);
-
-CREATE TABLE horde_activesync_state (
- sync_time INTEGER,
- sync_key VARCHAR(255) NOT NULL,
- sync_data TEXT,
- sync_devid VARCHAR(255),
- sync_folderid VARCHAR(255),
- sync_user VARCHAR(255) NOT NULL,
---
- PRIMARY KEY (sync_key)
-);
-
-CREATE INDEX activesync_state_folder_idx ON horde_activesync_state (sync_folderid);
-CREATE INDEX activesync_state_devid_idx ON horde_activesync_state (sync_devid);
-
-CREATE TABLE horde_activesync_map (
- message_uid VARCHAR(255) NOT NULL,
- sync_modtime INTEGER,
- sync_key VARCHAR(255) NOT NULL,
- sync_devid VARCHAR(255) NOT NULL,
- sync_folderid VARCHAR(255) NOT NULL,
- sync_user VARCHAR(255) NOT NULL
-);
-
-CREATE INDEX activesync_map_devid_idx ON horde_activesync_map (sync_devid);
-CREATE INDEX activesync_map_message_idx ON horde_activesync_map (message_uid);
-CREATE INDEX activesync_map_user_idx ON horde_activesync_map (sync_user);
-
-CREATE TABLE horde_activesync_device (
- device_id VARCHAR(255) NOT NULL,
- device_type VARCHAR(255) NOT NULL,
- device_agent VARCHAR(255) NOT NULL,
- device_supported TEXT,
- device_policykey BIGINT DEFAULT 0,
- device_rwstatus INTEGER,
---
- PRIMARY KEY (device_id)
-);
-
-CREATE TABLE horde_activesync_device_users (
- device_id VARCHAR(255) NOT NULL,
- device_user VARCHAR(255) NOT NULL,
- device_ping TEXT,
- device_folders TEXT
-);
-CREATE INDEX activesync_device_users_idx ON horde_activesync_device_users (device_user);
-CREATE INDEX activesync_device_users_id_idx on horde_activesync_device_users (device_id);
+++ /dev/null
--- horde tables definitions : sql script
--- 01/22/2003 - F. Helly <francois.helly@wanadoo.fr>
--- command line syntax : isql -ihorde_sybase.sql
--- warning : use nvarchar only if you need unicode encoding for some strings
-
-use horde
-go
-
-
-DROP TABLE horde_datatree
-go
-
-DROP TABLE horde_prefs
-go
-
-DROP TABLE horde_users
-go
-
-DROP TABLE horde_signups
-go
-
-DROP TABLE horde_groups
-go
-
-DROP TABLE horde_groups_members
-go
-
-DROP TABLE horde_sessionhandler
-go
-
--- DROP TABLE horde_datatree_seq
--- go
-
--- DROP TABLE horde_tokens
--- go
-
--- DROP TABLE horde_vfs
--- go
-
--- DROP TABLE horde_muvfs
--- go
-
-
-CREATE TABLE horde_users (
- user_uid varchar(256) NOT NULL,
- user_pass varchar(256) NOT NULL,
- user_soft_expiration_date numeric(10,0),
- user_hard_expiration_date numeric(10,0),
- PRIMARY KEY (user_uid)
-)
-go
-
-CREATE TABLE horde_signups (
- user_name VARCHAR(255) NOT NULL,
- signup_date NUMERIC(10,0) NOT NULL,
- signup_host VARCHAR(255) NOT NULL,
- signup_data TEXT NOT NULL,
- PRIMARY KEY (user_name)
-)
-go
-
-CREATE TABLE horde_groups (
- group_uid numeric(11,0) IDENTITY NOT NULL,
- group_name varchar(256) NOT NULL,
- group_parents varchar(256) NOT NULL,
- group_email varchar(256),
- PRIMARY KEY (group_uid)
-)
-go
-
-CREATE TABLE horde_groups_members (
- group_uid numeric(11,0) NOT NULL,
- user_uid varchar(256) NOT NULL
-)
-go
-
-CREATE INDEX group_uid_idx ON horde_groups_members (group_uid)
-CREATE INDEX user_uid_idx ON horde_groups_members (user_uid)
-go
-
-CREATE TABLE horde_perms (
- perm_id numeric(11,0) NOT NULL,
- perm_name varchar(256) NOT NULL,
- perm_parents varchar(256) NOT NULL,
- perm_data text,
- PRIMARY KEY (perm_id)
-)
-go
-
-CREATE TABLE horde_datatree (
- datatree_id numeric(11,0) IDENTITY NOT NULL,
- group_uid varchar(256) NOT NULL,
- user_uid varchar(256) NOT NULL,
- datatree_name varchar(256) NOT NULL,
- datatree_parents varchar(256) NULL,
- datatree_data text NULL,
- datatree_serialized smallint DEFAULT 0 NOT NULL,
- PRIMARY KEY (datatree_id),
- FOREIGN KEY (user_uid)
- REFERENCES horde_users(user_uid)
-)
-go
-
-CREATE TABLE horde_prefs (
- pref_uid varchar(256) NOT NULL,
- pref_scope varchar(16) NOT NULL,
- pref_name varchar(32) NOT NULL,
- pref_value text NULL,
- PRIMARY KEY (pref_uid,pref_scope,pref_name)
-)
-go
-
-CREATE TABLE horde_sessionhandler (
- session_id varchar(32) NOT NULL,
- session_lastmodified numeric(11,0) NOT NULL,
- session_data image NULL,
- PRIMARY KEY (session_id)
-)
-go
-
-CREATE TABLE horde_syncml_map (
- syncml_syncpartner varchar(255) NOT NULL,
- syncml_db varchar(255) NOT NULL,
- syncml_uid varchar(255) NOT NULL,
- syncml_cuid varchar(255),
- syncml_suid varchar(255),
- syncml_timestamp numeric(11,0)
-);
-go
-
-CREATE TABLE horde_syncml_anchors(
- syncml_syncpartner varchar(255) NOT NULL,
- syncml_db varchar(255) NOT NULL,
- syncml_uid varchar(255) NOT NULL,
- syncml_clientanchor varchar(255),
- syncml_serveranchor varchar(255)
-);
-go
-
-CREATE TABLE horde_alarms (
- alarm_id varchar(255) NOT NULL,
- alarm_uid varchar(255),
- alarm_start timestamp NOT NULL,
- alarm_end timestamp,
- alarm_methods varchar(255),
- alarm_params text,
- alarm_title varchar(255) NOT NULL,
- alarm_text text,
- alarm_snooze timestamp,
- alarm_dismissed smallint DEFAULT 0 NOT NULL,
- alarm_internal text
-)
-go
-
-CREATE TABLE horde_cache (
- cache_id varchar(32) NOT NULL,
- cache_timestamp numeric(11,0) NOT NULL,
- cache_expiration numeric(11,0) NOT NULL,
- cache_data image,
- PRIMARY KEY (cache_id)
-)
-go
-
-CREATE TABLE horde_locks (
- lock_id varchar(36) NOT NULL,
- lock_owner varchar(32) NOT NULL,
- lock_scope varchar(32) NOT NULL,
- lock_principal varchar(255) NOT NULL,
- lock_origin_timestamp numeric(11, 0) NOT NULL,
- lock_update_timestamp numeric(11, 0) NOT NULL,
- lock_expiry_timestamp numeric(11, 0) NOT NULL,
- lock_type numeric(11, 0) NOT NULL,
-
- PRIMARY KEY (lock_id)
-)
-go
-
-CREATE TABLE horde_activesync_state (
- sync_time numeric(10, 0),
- sync_key varchar(255) NOT NULL,
- sync_data text,
- sync_devid varchar(255),
- sync_folderid varchar(255),
- sync_user varchar(255),
---
- PRIMARY KEY (sync_key)
-);
-go
-
-CREATE TABLE horde_activesync_map (
- message_uid varchar(255) NOT NULL,
- sync_modtime numeric(10, 0),
- sync_key varchar(255) NOT NULL,
- sync_devid varchar(255) NOT NULL,
- sync_folderid varchar(255) NOT NULL,
- sync_user varchar(255)
-);
-go
-
-CREATE TABLE horde_activesync_device (
- device_id varchar(255) NOT NULL,
- device_type varchar(255) NOT NULL,
- device_agent varchar(255) NOT NULL,
- device_supported text,
- device_policykey number(11, 0) DEFAULT 0,
- device_rwstatus number(10, 0),
---
- PRIMARY KEY (device_id)
-);
-go
-
-CREATE TABLE horde_activesync_device_users (
- device_id varchar(255) NOT NULL,
- device_user varchar(255) NOT NULL,
- device_ping text,
- device_folders text
-);
-go
-
--- CREATE TABLE horde_datatree_seq (
--- id numeric(10,0) IDENTITY NOT NULL,
--- PRIMARY KEY (id)
--- )
--- go
-
--- CREATE TABLE horde_tokens (
--- token_address varchar(100) NOT NULL,
--- token_id varchar(32) NOT NULL,
--- token_timestamp numeric(20,0) NOT NULL,
--- PRIMARY KEY (token_address,token_id)
--- )
--- go
-
--- CREATE TABLE horde_vfs (
--- vfs_id numeric(20,0) NOT NULL,
--- vfs_type numeric(8,0) NOT NULL,
--- vfs_path varchar(256) NOT NULL,
--- vfs_name nvarchar(256) NOT NULL,
--- vfs_modified numeric(20,0) NOT NULL,
--- vfs_owner varchar(256) NOT NULL,
--- vfs_data image NULL,
--- PRIMARY KEY (vfs_id)
--- )
--- go
-
--- CREATE TABLE horde_muvfs (
--- vfs_id numeric(20,0) NOT NULL,
--- vfs_type numeric(8,0) NOT NULL,
--- vfs_path varchar(256) NOT NULL,
--- vfs_name varchar(256) NOT NULL,
--- vfs_modified numeric(8,0) NOT NULL,
--- vfs_owner varchar(256) NOT NULL,
--- vfs_perms smallint NOT NULL,
--- vfs_data image NULL,
--- PRIMARY KEY (vfs_id)
--- )
--- go
-
-
-CREATE INDEX pref_uid_idx ON horde_prefs (pref_uid)
-go
-
-CREATE INDEX pref_scope_idx ON horde_prefs (pref_scope)
-go
-
-CREATE INDEX datatree_datatree_name_idx ON horde_datatree (datatree_name)
-go
-
-CREATE INDEX datatree_group_idx ON horde_datatree (group_uid)
-go
-
-CREATE INDEX datatree_user_idx ON horde_datatree (user_uid)
-go
-
-CREATE INDEX datatree_serialized_idx ON horde_datatree (datatree_serialized)
-go
-
-CREATE INDEX datatree_parents_idx ON horde_datatree (datatree_parents)
-go
-
-CREATE INDEX syncml_syncpartner_idx ON horde_syncml_map (syncml_syncpartner);
-go
-
-CREATE INDEX syncml_db_idx ON horde_syncml_map (syncml_db);
-go
-
-CREATE INDEX syncml_uid_idx ON horde_syncml_map (syncml_uid);
-go
-
-CREATE INDEX syncml_cuid_idx ON horde_syncml_map (syncml_cuid);
-go
-
-CREATE INDEX syncml_suid_idx ON horde_syncml_map (syncml_suid);
-go
-
-CREATE INDEX syncml_anchors_syncpartner_idx ON horde_syncml_anchors (syncml_syncpartner);
-go
-
-CREATE INDEX syncml_anchors_db_idx ON horde_syncml_anchors (syncml_db);
-go
-
-CREATE INDEX syncml_anchors_uid_idx ON horde_syncml_anchors (syncml_uid);
-go
-
-CREATE INDEX alarm_id_idx ON horde_alarms (alarm_id)
-go
-
-CREATE INDEX alarm_user_idx ON horde_alarms (alarm_uid)
-go
-
-CREATE INDEX alarm_start_idx ON horde_alarms (alarm_start)
-go
-
-CREATE INDEX alarm_end_idx ON horde_alarms (alarm_end)
-go
-
-CREATE INDEX alarm_snooze_idx ON horde_alarms (alarm_snooze)
-go
-
-CREATE INDEX alarm_dismissed_idx ON horde_alarms (alarm_dismissed)
-go
-
-CREATE INDEX session_lastmodified_idx ON horde_sessionhandler (session_lastmodified)
-go
-
-CREATE INDEX activesync_state_folder_idx ON horde_activesync_state (sync_folderid);
-go
-
-CREATE INDEX activesync_state_devid_idx ON horde_activesync_state (sync_devid);
-go
-
-CREATE INDEX activesync_map_devid_idx ON horde_activesync_map (sync_devid);
-go
-
-CREATE INDEX activesync_map_message_idx ON horde_activesync_map (message_uid);
-go
-
-CREATE INDEX activesync_device_user_idx ON horde_activesync_device (device_user);
-go
-
-CREATE INDEX activesync_device_users_idx ON horde_activesync_device_users (device_user);
-go
-
-CREATE INDEX activesync_map_user_idx ON horde_activesync_map (sync_user);
-go
-
--- CREATE INDEX vfs_path_idx ON horde_vfs (vfs_path)
--- go
-
--- CREATE INDEX vfs_name_idx ON horde_vfs (vfs_name)
--- go
-
--- CREATE INDEX vfs_path_idx ON horde_muvfs (vfs_path)
--- go
-
--- CREATE INDEX vfs_name_idx ON horde_muvfs (vfs_name)
--- go
-
-
-grant select, insert, delete, update on editor to horde
-go
-grant select, insert, delete, update on host to horde
-go
-grant select, insert, delete, update on dbase to horde
-go
-grant select, insert, delete, update on site to horde
-go
-grant select, insert, delete, update on connection to horde
-go
-grant select, insert, delete, update on horde_datatree to horde
-go
-grant select, insert, delete, update on horde_prefs to horde
-go
-grant select, insert, delete, update on horde_sessionhandler to horde
-go
-grant select, insert, delete, update on horde_syncml_map to horde
-go
-grant select, insert, delete, update on horde_alarms to horde
-go
-grant select, insert, delete, update on horde_cache to horde
-go
-
--- grant select, insert, delete, update on horde_datatree_seq to horde
--- go
--- grant select, insert, delete, update on horde_tokens to horde
--- go
--- grant select, insert, delete, update on horde_vfs to horde
--- go
--- grant select, insert, delete, update on horde_muvfs to horde
--- go
-
-
-
--- add you admin_user_uid and admin_user_pass
-
--- insert into horde_users values ('your_admin_user_uid', 'your_admin_user_pass_md5_encrypted')
--- go
+++ /dev/null
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<database>
-
- <name><variable>name</variable></name>
- <create><variable>create</variable></create>
-
- <table>
-
- <name>horde_alarms</name>
-
- <declaration>
-
- <field>
- <name>alarm_id</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>alarm_uid</name>
- <type>text</type>
- <length>255</length>
- </field>
-
- <field>
- <name>alarm_start</name>
- <type>timestamp</type>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>alarm_end</name>
- <type>timestamp</type>
- </field>
-
- <field>
- <name>alarm_methods</name>
- <type>text</type>
- <length>255</length>
- </field>
-
- <field>
- <name>alarm_params</name>
- <type>clob</type>
- </field>
-
- <field>
- <name>alarm_title</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>alarm_text</name>
- <type>clob</type>
- </field>
-
- <field>
- <name>alarm_snooze</name>
- <type>timestamp</type>
- </field>
-
- <field>
- <name>alarm_dismissed</name>
- <type>integer</type>
- <length>1</length>
- <notnull>true</notnull>
- <default>0</default>
- </field>
-
- <field>
- <name>alarm_internal</name>
- <type>clob</type>
- </field>
-
- <index>
- <name>alarm_id_idx</name>
- <field>
- <name>alarm_id</name>
- </field>
- </index>
-
- <index>
- <name>alarm_user_idx</name>
- <field>
- <name>alarm_uid</name>
- </field>
- </index>
-
- <index>
- <name>alarm_start_idx</name>
- <field>
- <name>alarm_start</name>
- </field>
- </index>
-
- <index>
- <name>alarm_end_idx</name>
- <field>
- <name>alarm_end</name>
- </field>
- </index>
-
- <index>
- <name>alarm_snooze_idx</name>
- <field>
- <name>alarm_snooze</name>
- </field>
- </index>
-
- <index>
- <name>alarm_dismissed_idx</name>
- <field>
- <name>alarm_dismissed</name>
- </field>
- </index>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_cache</name>
-
- <declaration>
-
- <field>
- <name>cache_id</name>
- <type>text</type>
- <length>32</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>cache_timestamp</name>
- <type>integer</type>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>cache_expiration</name>
- <type>integer</type>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>cache_data</name>
- <type>blob</type>
- </field>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_datatree</name>
-
- <declaration>
-
- <field>
- <name>datatree_id</name>
- <type>integer</type>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>group_uid</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>user_uid</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>datatree_name</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>datatree_parents</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>datatree_order</name>
- <type>integer</type>
- </field>
-
- <field>
- <name>datatree_data</name>
- <type>clob</type>
- </field>
-
- <field>
- <name>datatree_serialized</name>
- <type>integer</type>
- <length>2</length>
- <notnull>true</notnull>
- </field>
-
- <index>
- <name>datatree_datatree_name</name>
- <field>
- <name>datatree_name</name>
- </field>
- </index>
-
- <index>
- <name>datatree_group</name>
- <field>
- <name>group_uid</name>
- </field>
- </index>
-
- <index>
- <name>datatree_user</name>
- <field>
- <name>user_uid</name>
- </field>
- </index>
-
- <index>
- <name>datatree_serialized</name>
- <field>
- <name>datatree_serialized</name>
- </field>
- </index>
-
- <index>
- <name>datatree_parents</name>
- <field>
- <name>datatree_parents</name>
- </field>
- </index>
-
- <index>
- <name>datatree_primary</name>
- <primary>true</primary>
- <field>
- <name>datatree_id</name>
- </field>
- </index>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_datatree_attributes</name>
-
- <declaration>
-
- <field>
- <name>datatree_id</name>
- <type>integer</type>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>attribute_name</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>attribute_key</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>attribute_value</name>
- <type>clob</type>
- </field>
-
- <index>
- <name>datatree_attribute</name>
- <field>
- <name>datatree_id</name>
- </field>
- </index>
-
- <index>
- <name>datatree_attribute_name</name>
- <field>
- <name>attribute_name</name>
- </field>
- </index>
-
- <index>
- <name>datatree_attribute_key</name>
- <field>
- <name>attribute_key</name>
- </field>
- </index>
-
- <index>
- <name>datatree_attribute_value</name>
- <field>
- <name>attribute_value</name>
- <length>255</length>
- </field>
- </index>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_histories</name>
-
- <declaration>
-
- <field>
- <name>history_id</name>
- <type>integer</type>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>object_uid</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>history_action</name>
- <type>text</type>
- <length>32</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>history_ts</name>
- <type>integer</type>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>history_desc</name>
- <type>clob</type>
- </field>
-
- <field>
- <name>history_who</name>
- <type>text</type>
- <length>255</length>
- </field>
-
- <field>
- <name>history_extra</name>
- <type>clob</type>
- </field>
-
- <index>
- <name>history_action</name>
- <field>
- <name>history_action</name>
- </field>
- </index>
-
- <index>
- <name>history_ts</name>
- <field>
- <name>history_ts</name>
- </field>
- </index>
-
- <index>
- <name>history_uid</name>
- <field>
- <name>object_uid</name>
- </field>
- </index>
-
- <index>
- <name>history_primary</name>
- <primary>true</primary>
- <field>
- <name>history_id</name>
- </field>
- </index>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_prefs</name>
-
- <declaration>
-
- <field>
- <name>pref_uid</name>
- <type>text</type>
- <length>200</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>pref_scope</name>
- <type>text</type>
- <length>16</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>pref_name</name>
- <type>text</type>
- <length>32</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>pref_value</name>
- <type>clob</type>
- </field>
-
- <index>
- <name>pref_primary</name>
- <primary>true</primary>
- <field>
- <name>pref_uid</name>
- </field>
- <field>
- <name>pref_scope</name>
- </field>
- <field>
- <name>pref_name</name>
- </field>
- </index>
-
- <index>
- <name>pref_uid</name>
- <field>
- <name>pref_uid</name>
- </field>
- </index>
-
- <index>
- <name>pref_scope</name>
- <field>
- <name>pref_scope</name>
- </field>
- </index>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_sessionhandler</name>
-
- <declaration>
-
- <field>
- <name>session_id</name>
- <type>text</type>
- <length>32</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>session_lastmodified</name>
- <type>integer</type>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>session_data</name>
- <type>blob</type>
- </field>
-
- <index>
- <name>session_primary</name>
- <primary>true</primary>
- <field>
- <name>session_id</name>
- </field>
- </index>
-
- <index>
- <name>session_lastmodified</name>
- <field>
- <name>session_lastmodified</name>
- </field>
- </index>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_signups</name>
-
- <declaration>
-
- <field>
- <name>user_name</name>
- <type>text</type>
- <notnull>true</notnull>
- <length>255</length>
- </field>
-
- <field>
- <name>signup_date</name>
- <type>integer</type>
- <notnull>true</notnull>
- <length>4</length>
- </field>
-
- <field>
- <name>signup_host</name>
- <type>text</type>
- <notnull>true</notnull>
- <length>255</length>
- </field>
-
- <field>
- <name>signup_data</name>
- <type>clob</type>
- <notnull>true</notnull>
- </field>
-
- <index>
- <name>signup_primary</name>
- <primary>true</primary>
- <field>
- <name>user_name</name>
- </field>
- </index>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_syncml_anchors</name>
-
- <declaration>
-
- <field>
- <name>syncml_syncpartner</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>syncml_db</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>syncml_uid</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>syncml_clientanchor</name>
- <type>text</type>
- <length>255</length>
- </field>
-
- <field>
- <name>syncml_serveranchor</name>
- <type>text</type>
- <length>255</length>
- </field>
-
- <index>
- <name>syncml_anchors_syncpartner_idx</name>
- <field>
- <name>syncml_syncpartner</name>
- </field>
- </index>
-
- <index>
- <name>syncml_anchors_db_idx</name>
- <field>
- <name>syncml_db</name>
- </field>
- </index>
-
- <index>
- <name>syncml_anchors_uid_idx</name>
- <field>
- <name>syncml_uid</name>
- </field>
- </index>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_syncml_map</name>
-
- <declaration>
-
- <field>
- <name>syncml_syncpartner</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>syncml_db</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>syncml_uid</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>syncml_cuid</name>
- <type>text</type>
- <length>255</length>
- </field>
-
- <field>
- <name>syncml_suid</name>
- <type>text</type>
- <length>255</length>
- </field>
-
- <field>
- <name>syncml_timestamp</name>
- <type>integer</type>
- </field>
-
- <index>
- <name>syncml_syncpartner_idx</name>
- <field>
- <name>syncml_syncpartner</name>
- </field>
- </index>
-
- <index>
- <name>syncml_db_idx</name>
- <field>
- <name>syncml_db</name>
- </field>
- </index>
-
- <index>
- <name>syncml_uid_idx</name>
- <field>
- <name>syncml_uid</name>
- </field>
- </index>
-
- <index>
- <name>syncml_cuid_idx</name>
- <field>
- <name>syncml_cuid</name>
- </field>
- </index>
-
- <index>
- <name>syncml_suid_idx</name>
- <field>
- <name>syncml_suid</name>
- </field>
- </index>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_tokens</name>
-
- <declaration>
-
- <field>
- <name>token_address</name>
- <type>text</type>
- <length>100</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>token_id</name>
- <type>text</type>
- <length>32</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>token_timestamp</name>
- <type>integer</type>
- <notnull>true</notnull>
- </field>
-
- <index>
- <name>token_primary</name>
- <primary>true</primary>
- <field>
- <name>token_address</name>
- </field>
- <field>
- <name>token_id</name>
- </field>
- </index>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_users</name>
-
- <declaration>
-
- <field>
- <name>user_uid</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>user_pass</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>user_soft_expiration_date</name>
- <type>integer</type>
- </field>
-
- <field>
- <name>user_hard_expiration_date</name>
- <type>integer</type>
- </field>
-
- <index>
- <name>user_primary</name>
- <primary>true</primary>
- <field>
- <name>user_uid</name>
- </field>
- </index>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_groups</name>
-
- <declaration>
-
- <field>
- <name>group_uid</name>
- <type>integer</type>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>group_name</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>group_parents</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>group_email</name>
- <type>text</type>
- <length>255</length>
- </field>
-
- <index>
- <name>group_primary</name>
- <primary>true</primary>
- <field>
- <name>group_uid</name>
- </field>
- </index>
-
- <index>
- <name>group_unique</name>
- <unique>true</unique>
- <field>
- <name>group_name</name>
- </field>
- </index>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_groups_members</name>
-
- <declaration>
-
- <field>
- <name>group_uid</name>
- <type>integer</type>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>user_uid</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <index>
- <name>group_uid</name>
- <field>
- <name>group_uid</name>
- </field>
- </index>
-
- <index>
- <name>user_uid</name>
- <field>
- <name>user_uid</name>
- </field>
- </index>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_locks</name>
-
- <declaration>
-
- <field>
- <name>lock_id</name>
- <type>text</type>
- <length>36</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>lock_owner</name>
- <type>text</type>
- <length>32</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>lock_scope</name>
- <type>text</type>
- <length>32</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>lock_principal</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>lock_origin_timestamp</name>
- <type>integer</type>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>lock_update_timestamp</name>
- <type>integer</type>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>lock_expiry_timestamp</name>
- <type>integer</type>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>lock_type</name>
- <type>integer</type>
- <notnull>true</notnull>
- </field>
-
- <index>
- <name>lock_primary</name>
- <primary>true</primary>
- <field>
- <name>lock_id</name>
- </field>
- </index>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_perms</name>
-
- <declaration>
-
- <field>
- <name>perm_id</name>
- <type>integer</type>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>perm_name</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>perm_parents</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>perm_data</name>
- <type>clob</type>
- </field>
-
- <index>
- <name>perms_primary</name>
- <primary>true</primary>
- <field>
- <name>perm_id</name>
- </field>
- </index>
-
- <index>
- <name>perms_unique</name>
- <unique>true</unique>
- <field>
- <name>perm_name</name>
- </field>
- </index>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_vfs</name>
-
- <declaration>
-
- <field>
- <name>vfs_id</name>
- <type>integer</type>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>vfs_type</name>
- <type>integer</type>
- <length>1</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>vfs_path</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>vfs_name</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>vfs_modified</name>
- <type>integer</type>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>vfs_owner</name>
- <type>text</type>
- <length>255</length>
- <notnull>true</notnull>
- </field>
-
- <field>
- <name>vfs_data</name>
- <type>blob</type>
- </field>
-
- <index>
- <name>vfs_primary</name>
- <primary>true</primary>
- <field>
- <name>vfs_id</name>
- </field>
- </index>
-
- <index>
- <name>vfs_path</name>
- <field>
- <name>vfs_path</name>
- </field>
- </index>
-
- <index>
- <name>vfs_name</name>
- <field>
- <name>vfs_name</name>
- </field>
- </index>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>metarAirports</name>
-
- <declaration>
-
- <field>
- <name>id</name>
- <type>integer</type>
- <default></default>
- <notnull>false</notnull>
- <length>4</length>
- </field>
-
- <field>
- <name>block</name>
- <type>integer</type>
- <default></default>
- <notnull>false</notnull>
- <length>4</length>
- </field>
-
- <field>
- <name>station</name>
- <type>integer</type>
- <default></default>
- <notnull>false</notnull>
- <length>4</length>
- </field>
-
- <field>
- <name>icao</name>
- <type>text</type>
- <default></default>
- <notnull>false</notnull>
- <length>4</length>
- </field>
-
- <field>
- <name>name</name>
- <type>text</type>
- <default></default>
- <notnull>false</notnull>
- <length>80</length>
- </field>
-
- <field>
- <name>state</name>
- <type>text</type>
- <fixed>true</fixed>
- <default></default>
- <notnull>false</notnull>
- <length>2</length>
- </field>
-
- <field>
- <name>country</name>
- <type>text</type>
- <default></default>
- <notnull>false</notnull>
- <length>50</length>
- </field>
-
- <field>
- <name>wmo</name>
- <type>integer</type>
- <default></default>
- <notnull>false</notnull>
- <length>4</length>
- </field>
-
- <field>
- <name>latitude</name>
- <type>float</type>
- <default></default>
- <notnull>false</notnull>
- </field>
-
- <field>
- <name>longitude</name>
- <type>float</type>
- <default></default>
- <notnull>false</notnull>
- </field>
-
- <field>
- <name>elevation</name>
- <type>float</type>
- <default></default>
- <notnull>false</notnull>
- </field>
-
- <field>
- <name>x</name>
- <type>float</type>
- <default></default>
- <notnull>false</notnull>
- </field>
-
- <field>
- <name>y</name>
- <type>float</type>
- <default></default>
- <notnull>false</notnull>
- </field>
-
- <field>
- <name>z</name>
- <type>float</type>
- <default></default>
- <notnull>false</notnull>
- </field>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>metarLocations</name>
-
- <declaration>
-
- <field>
- <name>id</name>
- <type>integer</type>
- <default></default>
- <notnull>false</notnull>
- <length>4</length>
- </field>
-
- <field>
- <name>block</name>
- <type>integer</type>
- <default></default>
- <notnull>false</notnull>
- <length>4</length>
- </field>
-
- <field>
- <name>station</name>
- <type>integer</type>
- <default></default>
- <notnull>false</notnull>
- <length>4</length>
- </field>
-
- <field>
- <name>icao</name>
- <type>text</type>
- <default></default>
- <notnull>false</notnull>
- <length>4</length>
- </field>
-
- <field>
- <name>name</name>
- <type>text</type>
- <default></default>
- <notnull>false</notnull>
- <length>80</length>
- </field>
-
- <field>
- <name>state</name>
- <type>text</type>
- <fixed>true</fixed>
- <default></default>
- <notnull>false</notnull>
- <length>2</length>
- </field>
-
- <field>
- <name>country</name>
- <type>text</type>
- <default></default>
- <notnull>false</notnull>
- <length>50</length>
- </field>
-
- <field>
- <name>wmo</name>
- <type>integer</type>
- <default></default>
- <notnull>false</notnull>
- <length>4</length>
- </field>
-
- <field>
- <name>latitude</name>
- <type>float</type>
- <default></default>
- <notnull>false</notnull>
- </field>
-
- <field>
- <name>longitude</name>
- <type>float</type>
- <default></default>
- <notnull>false</notnull>
- </field>
-
- <field>
- <name>elevation</name>
- <type>float</type>
- <default></default>
- <notnull>false</notnull>
- </field>
-
- <field>
- <name>x</name>
- <type>float</type>
- <default></default>
- <notnull>false</notnull>
- </field>
-
- <field>
- <name>y</name>
- <type>float</type>
- <default></default>
- <notnull>false</notnull>
- </field>
-
- <field>
- <name>z</name>
- <type>float</type>
- <default></default>
- <notnull>false</notnull>
- </field>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_activesync_state</name>
-
- <declaration>
-
- <field>
- <name>sync_time</name>
- <type>integer</type>
- <notnull>false</notnull>
- <default>0</default>
- </field>
-
- <field>
- <name>sync_key</name>
- <type>text</type>
- <length>255</length>
- </field>
-
- <field>
- <name>sync_data</name>
- <type>clob</type>
- </field>
-
- <field>
- <name>sync_devid</name>
- <type>text</type>
- <length>255</length>
- <notnull>false</notnull>
- </field>
-
- <field>
- <name>sync_folderid</name>
- <type>text</type>
- <length>255</length>
- <notnull>false</notnull>
- </field>
-
- <field>
- <name>sync_user</name>
- <type>text</type>
- <length>255</length>
- <notnull>false</notnull>
- </field>
-
- <index>
- <name>activesync_state_primary</name>
- <primary>true</primary>
- <field>
- <name>sync_key</name>
- </field>
- </index>
-
- <index>
- <name>activesync_state_folder_idx</name>
- <field>
- <name>sync_folderid</name>
- </field>
- </index>
-
- <index>
- <name>activesync_state_devid_idx</name>
- <field>
- <name>sync_devid</name>
- </field>
- </index>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_activesync_map</name>
-
- <declaration>
-
- <field>
- <name>message_uid</name>
- <type>text</type>
- <length>255</length>
- </field>
-
- <field>
- <name>sync_modtime</name>
- <type>integer</type>
- <notnull>false</notnull>
- </field>
-
- <field>
- <name>sync_key</name>
- <type>text</type>
- <length>255</length>
- </field>
-
- <field>
- <name>sync_devid</name>
- <type>text</type>
- <length>255</length>
- <notnull>false</notnull>
- </field>
-
- <field>
- <name>sync_folderid</name>
- <type>text</type>
- <length>255</length>
- <notnull>false</notnull>
- </field>
-
- <field>
- <name>sync_user</name>
- <type>text</type>
- <length>255</length>
- <notnull>false</notnull>
- </field>
-
- <index>
- <name>activesync_map_message_idx</name>
- <field>
- <name>message_uid</name>
- </field>
- </index>
-
- <index>
- <name>activesync_map_devid_idx</name>
- <field>
- <name>sync_devid</name>
- </field>
- </index>
-
- <index>
- <name>activesync_map_user_idx</name>
- <field>
- <name>sync_user</name>
- </field>
- </index>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_activesync_device</name>
-
- <declaration>
-
- <field>
- <name>device_id</name>
- <type>text</type>
- <length>255</length>
- </field>
-
- <field>
- <name>device_type</name>
- <type>text</type>
- <length>255</length>
- </field>
-
- <field>
- <name>device_agent</name>
- <type>text</type>
- <length>255</length>
- </field>
-
- <field>
- <name>device_supported</name>
- <type>clob</type>
- <notnull>false</notnull>
- </field>
-
- <field>
- <name>device_policykey</name>
- <type>integer</type>
- <default>0</default>
- </field>
-
- <field>
- <name>device_rwstatus</name>
- <type>integer</type>
- <notnull>false</notnull>
- </field>
-
- <index>
- <name>activesync_device_primary</name>
- <primary>true</primary>
- <field>
- <name>device_id</name>
- </field>
- </index>
-
- </declaration>
-
- </table>
-
- <table>
-
- <name>horde_activesync_device_users</name>
-
- <declaration>
-
- <field>
- <name>device_id</name>
- <type>text</type>
- <length>255</length>
- </field>
-
- <field>
- <name>device_ping</name>
- <type>clob</type>
- <notnull>false</notnull>
- </field>
-
- <field>
- <name>device_folders</name>
- <type>clob</type>
- <notnull>false</notnull>
- </field>
-
- <field>
- <name>device_user</name>
- <type>text</type>
- <length>255</length>
- <notnull>false</notnull>
- </field>
-
- <index>
- <name>activesync_device_user_idx</name>
- <field>
- <name>device_user</name>
- </field>
- </index>
-
- </declaration>
-
- </table>
-</database>