~ubuntu-branches/ubuntu/vivid/php-horde-nag/vivid-proposed

« back to all changes in this revision

Viewing changes to nag-4.1.3/migration/1_nag_base_tables.php

  • Committer: Package Import Robot
  • Author(s): Mathieu Parent
  • Date: 2014-03-11 21:27:39 UTC
  • mfrom: (1.1.6)
  • Revision ID: package-import@ubuntu.com-20140311212739-m6rbihspu5zjpvaq
Tags: 4.1.4-1
New upstream version 4.1.4

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?php
2
 
/**
3
 
 * Create Nag base tables (as of Nag 2.x).
4
 
 *
5
 
 * Copyright 2010-2013 Horde LLC (http://www.horde.org/)
6
 
 *
7
 
 * See the enclosed file COPYING for license information (GPL). If you
8
 
 * did not receive this file, see http://www.horde.org/licenses/gpl.
9
 
 *
10
 
 * @author   Chuck Hagenbuch <chuck@horde.org>
11
 
 * @category Horde
12
 
 * @license  http://www.horde.org/licenses/gpl GPL
13
 
 * @package  Nag
14
 
 */
15
 
class NagBaseTables extends Horde_Db_Migration_Base
16
 
{
17
 
    /**
18
 
     * Upgrade.
19
 
     */
20
 
    public function up()
21
 
    {
22
 
        $tableList = $this->tables();
23
 
 
24
 
        if (!in_array('nag_tasks', $tableList)) {
25
 
            $t = $this->createTable('nag_tasks', array('autoincrementKey' => false));
26
 
            $t->column('task_id', 'string', array('limit' => 32, 'null' => false));
27
 
            $t->column('task_owner', 'string', array('null' => false));
28
 
            $t->column('task_creator', 'string', array('null' => false));
29
 
            $t->column('task_parent', 'string');
30
 
            $t->column('task_assignee', 'string');
31
 
            $t->column('task_name', 'string', array('null' => false));
32
 
            $t->column('task_uid', 'string', array('null' => false));
33
 
            $t->column('task_desc', 'text');
34
 
            $t->column('task_start', 'integer');
35
 
            $t->column('task_due', 'integer');
36
 
            $t->column('task_priority', 'integer', array('default' => 0, 'null' => false));
37
 
            $t->column('task_estimate', 'float');
38
 
            $t->column('task_category', 'string', array('limit' => 80));
39
 
            $t->column('task_completed', 'integer', array('limit' => 1, 'default' => 0, 'null' => false));
40
 
            $t->column('task_completed_date', 'integer');
41
 
            $t->column('task_alarm', 'integer', array('default' => 0, 'null' => false));
42
 
            $t->column('task_alarm_methods', 'text');
43
 
            $t->column('task_private', 'integer', array('limit' => 1, 'default' => 0, 'null' => false));
44
 
            $t->primaryKey(array('task_id'));
45
 
            $t->end();
46
 
 
47
 
            $this->addIndex('nag_tasks', array('task_owner'));
48
 
            $this->addIndex('nag_tasks', array('task_uid'));
49
 
            $this->addIndex('nag_tasks', array('task_start'));
50
 
        }
51
 
 
52
 
        if (!in_array('nag_shares', $tableList)) {
53
 
            $t = $this->createTable('nag_shares', array('autoincrementKey' => 'share_id'));
54
 
            $t->column('share_id', 'integer', array('null' => false));
55
 
            $t->column('share_name', 'string', array('null' => false));
56
 
            $t->column('share_owner', 'string');
57
 
            $t->column('share_flags', 'integer', array('limit' => 2, 'default' => 0, 'null' => false));
58
 
            $t->column('perm_creator', 'integer', array('limit' => 2, 'default' => 0, 'null' => false));
59
 
            $t->column('perm_default', 'integer', array('limit' => 2, 'default' => 0, 'null' => false));
60
 
            $t->column('perm_guest', 'integer', array('limit' => 2, 'default' => 0, 'null' => false));
61
 
            $t->column('attribute_name', 'string', array('null' => false));
62
 
            $t->column('attribute_desc', 'string');
63
 
            $t->column('attribute_color', 'string', array('limit' => 7));
64
 
            $t->primaryKey(array('share_id'));
65
 
            $t->end();
66
 
 
67
 
            $this->addIndex('nag_shares', array('share_name'));
68
 
            $this->addIndex('nag_shares', array('share_owner'));
69
 
            $this->addIndex('nag_shares', array('perm_creator'));
70
 
            $this->addIndex('nag_shares', array('perm_default'));
71
 
            $this->addIndex('nag_shares', array('perm_guest'));
72
 
        }
73
 
 
74
 
        if (!in_array('nag_shares_groups', $tableList)) {
75
 
            $t = $this->createTable('nag_shares_groups', array('autoincrementKey' => false));
76
 
            $t->column('share_id', 'integer', array('null' => false));
77
 
            $t->column('group_uid', 'string', array('null' => false));
78
 
            $t->column('perm', 'integer', array('limit' => 2, 'null' => false));
79
 
            $t->end();
80
 
 
81
 
            $this->addIndex('nag_shares_groups', array('share_id'));
82
 
            $this->addIndex('nag_shares_groups', array('group_uid'));
83
 
            $this->addIndex('nag_shares_groups', array('perm'));
84
 
        }
85
 
 
86
 
        if (!in_array('nag_shares_users', $tableList)) {
87
 
            $t = $this->createTable('nag_shares_users', array('autoincrementKey' => false));
88
 
            $t->column('share_id', 'integer', array('null' => false));
89
 
            $t->column('user_uid', 'string', array('limit' => 255, 'null' => false));
90
 
            $t->column('perm', 'integer', array('limit' => 2, 'null' => false));
91
 
            $t->end();
92
 
 
93
 
            $this->addIndex('nag_shares_users', array('share_id'));
94
 
            $this->addIndex('nag_shares_users', array('user_uid'));
95
 
            $this->addIndex('nag_shares_users', array('perm'));
96
 
        }
97
 
    }
98
 
 
99
 
    /**
100
 
     * Downgrade.
101
 
     */
102
 
    public function down()
103
 
    {
104
 
        $this->dropTable('nag_tasks');
105
 
        $this->dropTable('nag_shares');
106
 
        $this->dropTable('nag_shares_groups');
107
 
        $this->dropTable('nag_shares_users');
108
 
    }
109
 
}