Passed
Push — master ( f762ef...190e8a )
by Julito
09:11
created

Version20150423093100   A

Complexity

Total Complexity 15

Size/Duplication

Total Lines 165
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 123
dl 0
loc 165
rs 10
c 0
b 0
f 0
wmc 15

2 Methods

Rating   Name   Duplication   Size   Complexity  
A down() 0 2 1
F up() 0 149 14
1
<?php
2
/* For licensing terms, see /license.txt */
3
4
namespace Chamilo\CoreBundle\Migrations\Schema\V110;
5
6
use Chamilo\CoreBundle\Migrations\AbstractMigrationChamilo;
7
use Doctrine\DBAL\Schema\Schema;
8
use Doctrine\DBAL\Types\Type;
9
10
/**
11
 * Class Version20150423093100
12
 *
13
 * @package Chamilo\CoreBundle\Migrations\Schema\V110
14
 */
15
class Version20150423093100 extends AbstractMigrationChamilo
16
{
17
    /**
18
     * @param Schema $schema
19
     *
20
     * @throws \Doctrine\DBAL\Schema\SchemaException
21
     */
22
    public function up(Schema $schema)
23
    {
24
        // Sequence changes
25
        if (!$schema->hasTable('sequence_rule')) {
26
            $sequenceRule = $schema->createTable('sequence_rule');
27
            $sequenceRule->addColumn('id', Type::INTEGER)->setAutoincrement(true);
28
            $sequenceRule->addColumn('text', Type::TEXT);
29
            $sequenceRule->setPrimaryKey(['id']);
30
        }
31
32
        if (!$schema->hasTable('sequence_condition')) {
33
            $sequenceCondition = $schema->createTable('sequence_condition');
34
            $sequenceCondition->addColumn('id', Type::INTEGER)->setAutoincrement(true);
35
            $sequenceCondition->addColumn('description', Type::TEXT);
36
            $sequenceCondition->addColumn('mat_op', Type::INTEGER);
37
            $sequenceCondition->addColumn('param', Type::FLOAT);
38
            $sequenceCondition->addColumn('act_true', Type::INTEGER);
39
            $sequenceCondition->addColumn('act_false', Type::INTEGER);
40
            $sequenceCondition->setPrimaryKey(['id']);
41
        }
42
43
        if (!$schema->hasTable('sequence_rule_condition')) {
44
            $sequenceRuleCondition = $schema->createTable('sequence_rule_condition');
45
            $sequenceRuleCondition->addColumn('id', Type::INTEGER)->setAutoincrement(true);
46
            $sequenceRuleCondition->addColumn('sequence_rule_id', Type::INTEGER)->setNotnull(false);
47
            $sequenceRuleCondition->addColumn('sequence_condition_id', Type::INTEGER)->setNotnull(false);
48
            $sequenceRuleCondition->setPrimaryKey(['id']);
49
            $sequenceRuleCondition->addIndex(['sequence_rule_id']);
50
            $sequenceRuleCondition->addIndex(['sequence_condition_id']);
51
            $sequenceRuleCondition->addForeignKeyConstraint('sequence_condition', ['sequence_condition_id'], ['id']);
52
            $sequenceRuleCondition->addForeignKeyConstraint('sequence_rule', ['sequence_rule_id'], ['id']);
53
        }
54
55
        if (!$schema->hasTable('sequence_method')) {
56
            $sequenceMethod = $schema->createTable('sequence_method');
57
            $sequenceMethod->addColumn('id', Type::INTEGER)->setAutoincrement(true);
58
            $sequenceMethod->addColumn('description', Type::TEXT);
59
            $sequenceMethod->addColumn('formula', Type::TEXT);
60
            $sequenceMethod->addColumn('assign', Type::INTEGER);
61
            $sequenceMethod->addColumn('met_type', Type::INTEGER);
62
            $sequenceMethod->addColumn('act_false', Type::INTEGER);
63
            $sequenceMethod->setPrimaryKey(['id']);
64
        }
65
66
        if (!$schema->hasTable('sequence_rule_method')) {
67
            $sequenceRuleMethod = $schema->createTable('sequence_rule_method');
68
            $sequenceRuleMethod->addColumn('id', Type::INTEGER)->setAutoincrement(true);
69
            $sequenceRuleMethod->addColumn('sequence_rule_id', Type::INTEGER)->setNotnull(false);
70
            $sequenceRuleMethod->addColumn('sequence_method_id', Type::INTEGER)->setNotnull(false);
71
            $sequenceRuleMethod->addColumn('method_order', Type::INTEGER);
72
            $sequenceRuleMethod->setPrimaryKey(['id']);
73
            $sequenceRuleMethod->addIndex(['sequence_rule_id']);
74
            $sequenceRuleMethod->addIndex(['sequence_method_id']);
75
            $sequenceRuleMethod->addForeignKeyConstraint('sequence_method', ['sequence_method_id'], ['id']);
76
            $sequenceRuleMethod->addForeignKeyConstraint('sequence_rule', ['sequence_rule_id'], ['id']);
77
        }
78
79
        if (!$schema->hasTable('sequence_variable')) {
80
            $sequenceVariable = $schema->createTable('sequence_variable');
81
            $sequenceVariable->addColumn('id', Type::INTEGER)->setAutoincrement(true);
82
            $sequenceVariable->addColumn('name', Type::STRING)->setLength(255)->setNotnull(false);
83
            $sequenceVariable->addColumn('description', Type::TEXT)->setNotnull(false);
84
            $sequenceVariable->addColumn('default_val', Type::STRING)->setLength(255)->setNotnull(false);
85
            $sequenceVariable->setPrimaryKey(['id']);
86
        }
87
88
        if (!$schema->hasTable('sequence_formula')) {
89
            $sequenceFormula = $schema->createTable('sequence_formula');
90
            $sequenceFormula->addColumn('id', Type::INTEGER)->setAutoincrement(true);
91
            $sequenceFormula->addColumn('sequence_method_id', Type::INTEGER)->setNotnull(false);
92
            $sequenceFormula->addColumn('sequence_variable_id', Type::INTEGER)->setNotnull(false);
93
            $sequenceFormula->setPrimaryKey(['id']);
94
            $sequenceFormula->addIndex(['sequence_method_id']);
95
            $sequenceFormula->addIndex(['sequence_variable_id']);
96
            $sequenceFormula->addForeignKeyConstraint('sequence_variable', ['sequence_variable_id'], ['id']);
97
            $sequenceFormula->addForeignKeyConstraint('sequence_method', ['sequence_method_id'], ['id']);
98
        }
99
100
        if (!$schema->hasTable('sequence_valid')) {
101
            $sequenceValid = $schema->createTable('sequence_valid');
102
            $sequenceValid->addColumn('id', Type::INTEGER)->setAutoincrement(true);
103
            $sequenceValid->addColumn('sequence_variable_id', Type::INTEGER)->setNotnull(false);
104
            $sequenceValid->addColumn('sequence_condition_id', Type::INTEGER)->setNotnull(false);
105
            $sequenceValid->setPrimaryKey(['id']);
106
            $sequenceValid->addIndex(['sequence_variable_id']);
107
            $sequenceValid->addIndex(['sequence_condition_id']);
108
            $sequenceValid->addForeignKeyConstraint('sequence_condition', ['sequence_condition_id'], ['id']);
109
            $sequenceValid->addForeignKeyConstraint('sequence_variable', ['sequence_variable_id'], ['id']);
110
        }
111
112
        if (!$schema->hasTable('sequence_type_entity')) {
113
            $sequenceTypeEntity = $schema->createTable('sequence_type_entity');
114
            $sequenceTypeEntity->addColumn('id', Type::INTEGER)->setAutoincrement(true);
115
            $sequenceTypeEntity->addColumn('name', Type::STRING)->setLength(255);
116
            $sequenceTypeEntity->addColumn('description', Type::TEXT);
117
            $sequenceTypeEntity->addColumn('ent_table', Type::STRING)->setLength(255);
118
            $sequenceTypeEntity->setPrimaryKey(['id']);
119
        }
120
121
        if (!$schema->hasTable('sequence_row_entity')) {
122
            $sequenceRowEntity = $schema->createTable('sequence_row_entity');
123
            $sequenceRowEntity->addColumn('id', Type::INTEGER)->setAutoincrement(true);
124
            $sequenceRowEntity->addColumn('sequence_type_entity_id', Type::INTEGER)->setNotnull(false);
125
            $sequenceRowEntity->addColumn('c_id', Type::INTEGER);
126
            $sequenceRowEntity->addColumn('session_id', Type::INTEGER);
127
            $sequenceRowEntity->addColumn('row_id', Type::INTEGER);
128
            $sequenceRowEntity->addColumn('name', Type::STRING)->setLength(255);
129
            $sequenceRowEntity->setPrimaryKey(['id']);
130
            $sequenceRowEntity->addIndex(['sequence_type_entity_id']);
131
            $sequenceRowEntity->addForeignKeyConstraint('sequence_type_entity', ['sequence_type_entity_id'], ['id']);
132
        }
133
134
        if (!$schema->hasTable('sequence')) {
135
            $sequence = $schema->createTable('sequence');
136
            $sequence->addColumn('id', Type::INTEGER)->setAutoincrement(true);
137
            $sequence->addColumn('name', Type::STRING)->setLength(255);
138
            $sequence->addColumn('graph', Type::TEXT)->setNotnull(false);
139
            $sequence->addColumn('created_at', Type::DATETIME);
140
            $sequence->addColumn('updated_at', Type::DATETIME);
141
            $sequence->setPrimaryKey(['id']);
142
        }
143
144
        if (!$schema->hasTable('sequence_value')) {
145
            $sequenceValue = $schema->createTable('sequence_value');
146
            $sequenceValue->addColumn('id', Type::INTEGER)->setAutoincrement(true);
147
            $sequenceValue->addColumn('sequence_row_entity_id', Type::INTEGER)->setNotnull(false);
148
            $sequenceValue->addColumn('user_id', Type::INTEGER);
149
            $sequenceValue->addColumn('advance', Type::FLOAT);
150
            $sequenceValue->addColumn('complete_items', Type::INTEGER);
151
            $sequenceValue->addColumn('total_items', Type::INTEGER);
152
            $sequenceValue->addColumn('success', Type::BOOLEAN);
153
            $sequenceValue->addColumn('success_date', Type::DATETIME)->setNotnull(false);
154
            $sequenceValue->addColumn('available', Type::BOOLEAN);
155
            $sequenceValue->addColumn('available_start_date', Type::DATETIME)->setNotnull(false);
156
            $sequenceValue->addColumn('available_end_date', Type::DATETIME)->setNotnull(false);
157
            $sequenceValue->setPrimaryKey(['id']);
158
            $sequenceValue->addIndex(['sequence_row_entity_id']);
159
            $sequenceValue->addForeignKeyConstraint('sequence_row_entity', ['sequence_row_entity_id'], ['id']);
160
        }
161
162
        if (!$schema->hasTable('sequence_resource')) {
163
            $sequenceResource = $schema->createTable('sequence_resource');
164
            $sequenceResource->addColumn('id', Type::INTEGER)->setAutoincrement(true);
165
            $sequenceResource->addColumn('sequence_id', Type::INTEGER)->setNotnull(false);
166
            $sequenceResource->addColumn('type', Type::INTEGER);
167
            $sequenceResource->addColumn('resource_id', Type::INTEGER);
168
            $sequenceResource->setPrimaryKey(['id']);
169
            $sequenceResource->addIndex(['sequence_id']);
170
            $sequenceResource->addForeignKeyConstraint('sequence', ['sequence_id'], ['id']);
171
        }
172
    }
173
174
    /**
175
     * We don't allow downgrades yet
176
     * @param Schema $schema
177
     */
178
    public function down(Schema $schema)
179
    {
180
    }
181
}
182