Elgg  Version 3.0
20170728075337_create_users_entity_table.php
Go to the documentation of this file.
1 <?php
2 
5 
6 class CreateUsersEntityTable extends AbstractMigration {
30  public function change() {
31 
32  if ($this->hasTable("users_entity")) {
33  return;
34  }
35 
36  $table = $this->table("users_entity", [
37  'id' => false,
38  'primary_key' => ["guid"],
39  'engine' => "InnoDB",
40  'encoding' => "utf8mb4",
41  'collation' => "utf8mb4_general_ci",
42  ]);
43 
44  $table->addColumn('guid', 'integer', [
45  'null' => false,
46  'limit' => MysqlAdapter::INT_BIG,
47  'precision' => 20,
48  'signed' => false,
49  ]);
50 
51  $table->addColumn('name', 'text', [
52  'null' => false,
53  ]);
54 
55  $table->addColumn('username', 'string', [
56  'null' => false,
57  'default' => '',
58  'limit' => 128,
59  ]);
60 
61  $table->addColumn('password_hash', 'string', [
62  'null' => false,
63  'default' => '',
64  'limit' => 255,
65  ]);
66 
67  $table->addColumn('email', 'text', [
68  'null' => false,
69  ]);
70 
71  $table->addColumn('language', 'string', [
72  'null' => false,
73  'default' => '',
74  'limit' => 6,
75  ]);
76 
77  $table->addColumn('banned', 'enum', [
78  'null' => false,
79  'default' => 'no',
80  'limit' => 3,
81  'values' => [
82  'yes',
83  'no'
84  ],
85  ]);
86 
87  $table->addColumn('admin', 'enum', [
88  'null' => false,
89  'default' => 'no',
90  'limit' => 3,
91  'values' => [
92  'yes',
93  'no'
94  ],
95  ]);
96 
97  $table->addColumn('last_action', 'integer', [
98  'null' => false,
99  'default' => '0',
100  'limit' => MysqlAdapter::INT_REGULAR,
101  'precision' => 11,
102  ]);
103 
104  $table->addColumn('prev_last_action', 'integer', [
105  'null' => false,
106  'default' => '0',
107  'limit' => MysqlAdapter::INT_REGULAR,
108  'precision' => 11,
109  ]);
110 
111  $table->addColumn('last_login', 'integer', [
112  'null' => false,
113  'default' => '0',
114  'limit' => MysqlAdapter::INT_REGULAR,
115  'precision' => 11,
116  ]);
117 
118  $table->addColumn('prev_last_login', 'integer', [
119  'null' => false,
120  'default' => '0',
121  'limit' => MysqlAdapter::INT_REGULAR,
122  'precision' => 11,
123  ]);
124 
125  $table->addIndex(['username'], [
126  'name' => "username",
127  'unique' => true,
128  ]);
129 
130  $table->addIndex(['email'], [
131  'name' => "email",
132  'unique' => false,
133  'limit' => 50,
134  ]);
135 
136  $table->addIndex(['last_login'], [
137  'name' => "last_login",
138  'unique' => false,
139  ]);
140 
141  $table->addIndex(['admin'], [
142  'name' => "admin",
143  'unique' => false
144  ]);
145 
146  $table->save();
147  }
148 }
change()
CREATE TABLE prefix_users_entity ( guid bigint(20) unsigned NOT NULL, name text NOT NULL...
$table
Definition: cron.php:57