Elgg  Version master
20170728075232_create_system_log_table.php
Go to the documentation of this file.
1 <?php
2 
5 
6 class CreateSystemLogTable extends AbstractMigration {
33  public function change() {
34 
35  if ($this->hasTable("system_log")) {
36  return;
37  }
38 
39  $table = $this->table("system_log", [
40  'engine' => "InnoDB",
41  'encoding' => "utf8mb4",
42  'collation' => "utf8mb4_general_ci",
43  ]);
44 
45  $table->addColumn('object_id', 'integer', [
46  'null' => false,
47  'limit' => MysqlAdapter::INT_REGULAR,
48  'precision' => 11,
49  ]);
50 
51  $table->addColumn('object_class', 'string', [
52  'null' => false,
53  'limit' => 50,
54  ]);
55 
56  $table->addColumn('object_type', 'string', [
57  'null' => false,
58  'limit' => 50,
59  ]);
60 
61  $table->addColumn('object_subtype', 'string', [
62  'null' => false,
63  'limit' => 50,
64  ]);
65 
66  $table->addColumn('event', 'string', [
67  'null' => false,
68  'limit' => 50,
69  ]);
70 
71  $table->addColumn('performed_by_guid', 'integer', [
72  'null' => false,
73  'limit' => MysqlAdapter::INT_BIG,
74  'precision' => 20,
75  'signed' => false,
76  ]);
77 
78  $table->addColumn('owner_guid', 'integer', [
79  'null' => false,
80  'limit' => MysqlAdapter::INT_BIG,
81  'precision' => 20,
82  'signed' => false,
83  ]);
84 
85  $table->addColumn('access_id', 'integer', [
86  'null' => false,
87  'limit' => MysqlAdapter::INT_REGULAR,
88  'precision' => 11,
89  ]);
90 
91  $table->addColumn('enabled', 'enum', [
92  'null' => false,
93  'default' => 'yes',
94  'limit' => 3,
95  'values' => [
96  'yes',
97  'no'
98  ],
99  ]);
100 
101  $table->addColumn('time_created', 'integer', [
102  'null' => false,
103  'limit' => MysqlAdapter::INT_REGULAR,
104  'precision' => 11,
105  ]);
106 
107  $table->addColumn('ip_address', 'string', [
108  'null' => false,
109  'limit' => 46,
110  ]);
111 
112  $table->addIndex(['object_id'], [
113  'name' => "object_id",
114  'unique' => false,
115  ]);
116 
117  $table->addIndex(['object_class'], [
118  'name' => "object_class",
119  'unique' => false,
120  ]);
121 
122  $table->addIndex(['object_type'], [
123  'name' => "object_type",
124  'unique' => false,
125  ]);
126 
127  $table->addIndex(['object_subtype'], [
128  'name' => "object_subtype",
129  'unique' => false,
130  ]);
131 
132  $table->addIndex(['event'], [
133  'name' => "event",
134  'unique' => false,
135  ]);
136 
137  $table->addIndex(['performed_by_guid'], [
138  'name' => "performed_by_guid",
139  'unique' => false,
140  ]);
141 
142  $table->addIndex(['access_id'], [
143  'name' => "access_id",
144  'unique' => false,
145  ]);
146 
147  $table->addIndex(['time_created'], [
148  'name' => "time_created",
149  'unique' => false,
150  ]);
151 
152  $table->addIndex([
153  'object_type',
154  'object_subtype',
155  'event'
156  ], [
157  'name' => "river_key",
158  'unique' => false
159  ]);
160 
161  $table->save();
162 
163  }
164 }
change()
CREATE TABLE prefix_system_log ( id int(11) NOT NULL AUTO_INCREMENT, object_id int(11) NOT NULL...
$table
Definition: user.php:37