@@ -84,6 +84,18 @@ public function testRenamingAndChangingColumnsWork()
84
84
'INSERT INTO users (first_name, age) SELECT name, age FROM __temp__users ' ,
85
85
'DROP TABLE __temp__users ' ,
86
86
],
87
+ [
88
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name, age FROM users ' ,
89
+ 'DROP TABLE users ' ,
90
+ 'CREATE TABLE users (name VARCHAR(255) NOT NULL COLLATE "BINARY", age INTEGER NOT NULL) ' ,
91
+ 'INSERT INTO users (name, age) SELECT name, age FROM __temp__users ' ,
92
+ 'DROP TABLE __temp__users ' ,
93
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name, age FROM users ' ,
94
+ 'DROP TABLE users ' ,
95
+ 'CREATE TABLE users (first_name VARCHAR(255) NOT NULL, age VARCHAR(255) NOT NULL COLLATE "BINARY") ' ,
96
+ 'INSERT INTO users (first_name, age) SELECT name, age FROM __temp__users ' ,
97
+ 'DROP TABLE __temp__users ' ,
98
+ ],
87
99
];
88
100
89
101
$ this ->assertContains ($ queries , $ expected );
@@ -104,26 +116,46 @@ public function testChangingColumnWithCollationWorks()
104
116
});
105
117
106
118
$ queries = $ blueprint ->toSql ($ this ->db ->connection (), new SQLiteGrammar );
107
- $ queries2 = $ blueprint2 ->toSql ($ this ->db ->connection (), new SQLiteGrammar );
108
119
109
120
$ expected = [
110
- 'CREATE TEMPORARY TABLE __temp__users AS SELECT age FROM users ' ,
111
- 'DROP TABLE users ' ,
112
- 'CREATE TABLE users (age INTEGER NOT NULL COLLATE RTRIM) ' ,
113
- 'INSERT INTO users (age) SELECT age FROM __temp__users ' ,
114
- 'DROP TABLE __temp__users ' ,
121
+ [
122
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT age FROM users ' ,
123
+ 'DROP TABLE users ' ,
124
+ 'CREATE TABLE users (age INTEGER NOT NULL COLLATE RTRIM) ' ,
125
+ 'INSERT INTO users (age) SELECT age FROM __temp__users ' ,
126
+ 'DROP TABLE __temp__users ' ,
127
+ ],
128
+ [
129
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT age FROM users ' ,
130
+ 'DROP TABLE users ' ,
131
+ 'CREATE TABLE users (age INTEGER NOT NULL COLLATE "RTRIM") ' ,
132
+ 'INSERT INTO users (age) SELECT age FROM __temp__users ' ,
133
+ 'DROP TABLE __temp__users ' ,
134
+ ],
115
135
];
116
136
117
- $ expected2 = [
118
- 'CREATE TEMPORARY TABLE __temp__users AS SELECT age FROM users ' ,
119
- 'DROP TABLE users ' ,
120
- 'CREATE TABLE users (age INTEGER NOT NULL COLLATE NOCASE) ' ,
121
- 'INSERT INTO users (age) SELECT age FROM __temp__users ' ,
122
- 'DROP TABLE __temp__users ' ,
137
+ $ this ->assertContains ($ queries , $ expected );
138
+
139
+ $ queries = $ blueprint2 ->toSql ($ this ->db ->connection (), new SQLiteGrammar );
140
+
141
+ $ expected = [
142
+ [
143
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT age FROM users ' ,
144
+ 'DROP TABLE users ' ,
145
+ 'CREATE TABLE users (age INTEGER NOT NULL COLLATE NOCASE) ' ,
146
+ 'INSERT INTO users (age) SELECT age FROM __temp__users ' ,
147
+ 'DROP TABLE __temp__users ' ,
148
+ ],
149
+ [
150
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT age FROM users ' ,
151
+ 'DROP TABLE users ' ,
152
+ 'CREATE TABLE users (age INTEGER NOT NULL COLLATE "NOCASE") ' ,
153
+ 'INSERT INTO users (age) SELECT age FROM __temp__users ' ,
154
+ 'DROP TABLE __temp__users ' ,
155
+ ],
123
156
];
124
157
125
- $ this ->assertEquals ($ expected , $ queries );
126
- $ this ->assertEquals ($ expected2 , $ queries2 );
158
+ $ this ->assertContains ($ queries , $ expected );
127
159
}
128
160
129
161
public function testChangingCharColumnsWork ()
@@ -139,14 +171,23 @@ public function testChangingCharColumnsWork()
139
171
$ queries = $ blueprint ->toSql ($ this ->db ->connection (), new SQLiteGrammar );
140
172
141
173
$ expected = [
142
- 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
143
- 'DROP TABLE users ' ,
144
- 'CREATE TABLE users (name CHAR(50) NOT NULL COLLATE BINARY) ' ,
145
- 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
146
- 'DROP TABLE __temp__users ' ,
174
+ [
175
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
176
+ 'DROP TABLE users ' ,
177
+ 'CREATE TABLE users (name CHAR(50) NOT NULL COLLATE BINARY) ' ,
178
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
179
+ 'DROP TABLE __temp__users ' ,
180
+ ],
181
+ [
182
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
183
+ 'DROP TABLE users ' ,
184
+ 'CREATE TABLE users (name CHAR(50) NOT NULL COLLATE "BINARY") ' ,
185
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
186
+ 'DROP TABLE __temp__users ' ,
187
+ ],
147
188
];
148
189
149
- $ this ->assertEquals ( $ expected , $ queries );
190
+ $ this ->assertContains ( $ queries , $ expected );
150
191
}
151
192
152
193
public function testChangingDoubleColumnsWork ()
@@ -234,15 +275,25 @@ public function testAddUniqueIndexWithoutNameWorks()
234
275
$ queries = $ blueprintMySql ->toSql ($ this ->db ->connection (), new MySqlGrammar );
235
276
236
277
$ expected = [
237
- 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
238
- 'DROP TABLE users ' ,
239
- 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
240
- 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
241
- 'DROP TABLE __temp__users ' ,
242
- 'alter table `users` add unique `users_name_unique`(`name`) ' ,
278
+ [
279
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
280
+ 'DROP TABLE users ' ,
281
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
282
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
283
+ 'DROP TABLE __temp__users ' ,
284
+ 'alter table `users` add unique `users_name_unique`(`name`) ' ,
285
+ ],
286
+ [
287
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
288
+ 'DROP TABLE users ' ,
289
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE "BINARY") ' ,
290
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
291
+ 'DROP TABLE __temp__users ' ,
292
+ 'alter table `users` add unique `users_name_unique`(`name`) ' ,
293
+ ],
243
294
];
244
295
245
- $ this ->assertEquals ( $ expected , $ queries );
296
+ $ this ->assertContains ( $ queries , $ expected );
246
297
247
298
$ blueprintPostgres = new Blueprint ('users ' , function ($ table ) {
248
299
$ table ->string ('name ' )->nullable ()->unique ()->change ();
@@ -251,15 +302,25 @@ public function testAddUniqueIndexWithoutNameWorks()
251
302
$ queries = $ blueprintPostgres ->toSql ($ this ->db ->connection (), new PostgresGrammar );
252
303
253
304
$ expected = [
254
- 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
255
- 'DROP TABLE users ' ,
256
- 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
257
- 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
258
- 'DROP TABLE __temp__users ' ,
259
- 'alter table "users" add constraint "users_name_unique" unique ("name") ' ,
305
+ [
306
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
307
+ 'DROP TABLE users ' ,
308
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
309
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
310
+ 'DROP TABLE __temp__users ' ,
311
+ 'alter table "users" add constraint "users_name_unique" unique ("name") ' ,
312
+ ],
313
+ [
314
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
315
+ 'DROP TABLE users ' ,
316
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE "BINARY") ' ,
317
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
318
+ 'DROP TABLE __temp__users ' ,
319
+ 'alter table "users" add constraint "users_name_unique" unique ("name") ' ,
320
+ ],
260
321
];
261
322
262
- $ this ->assertEquals ( $ expected , $ queries );
323
+ $ this ->assertContains ( $ queries , $ expected );
263
324
264
325
$ blueprintSQLite = new Blueprint ('users ' , function ($ table ) {
265
326
$ table ->string ('name ' )->nullable ()->unique ()->change ();
@@ -268,15 +329,25 @@ public function testAddUniqueIndexWithoutNameWorks()
268
329
$ queries = $ blueprintSQLite ->toSql ($ this ->db ->connection (), new SQLiteGrammar );
269
330
270
331
$ expected = [
271
- 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
272
- 'DROP TABLE users ' ,
273
- 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
274
- 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
275
- 'DROP TABLE __temp__users ' ,
276
- 'create unique index "users_name_unique" on "users" ("name") ' ,
332
+ [
333
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
334
+ 'DROP TABLE users ' ,
335
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
336
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
337
+ 'DROP TABLE __temp__users ' ,
338
+ 'create unique index "users_name_unique" on "users" ("name") ' ,
339
+ ],
340
+ [
341
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
342
+ 'DROP TABLE users ' ,
343
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE "BINARY") ' ,
344
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
345
+ 'DROP TABLE __temp__users ' ,
346
+ 'create unique index "users_name_unique" on "users" ("name") ' ,
347
+ ],
277
348
];
278
349
279
- $ this ->assertEquals ( $ expected , $ queries );
350
+ $ this ->assertContains ( $ queries , $ expected );
280
351
281
352
$ blueprintSqlServer = new Blueprint ('users ' , function ($ table ) {
282
353
$ table ->string ('name ' )->nullable ()->unique ()->change ();
@@ -285,15 +356,25 @@ public function testAddUniqueIndexWithoutNameWorks()
285
356
$ queries = $ blueprintSqlServer ->toSql ($ this ->db ->connection (), new SqlServerGrammar );
286
357
287
358
$ expected = [
288
- 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
289
- 'DROP TABLE users ' ,
290
- 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
291
- 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
292
- 'DROP TABLE __temp__users ' ,
293
- 'create unique index "users_name_unique" on "users" ("name") ' ,
359
+ [
360
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
361
+ 'DROP TABLE users ' ,
362
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
363
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
364
+ 'DROP TABLE __temp__users ' ,
365
+ 'create unique index "users_name_unique" on "users" ("name") ' ,
366
+ ],
367
+ [
368
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
369
+ 'DROP TABLE users ' ,
370
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE "BINARY") ' ,
371
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
372
+ 'DROP TABLE __temp__users ' ,
373
+ 'create unique index "users_name_unique" on "users" ("name") ' ,
374
+ ],
294
375
];
295
376
296
- $ this ->assertEquals ( $ expected , $ queries );
377
+ $ this ->assertContains ( $ queries , $ expected );
297
378
}
298
379
299
380
public function testAddUniqueIndexWithNameWorks ()
@@ -309,15 +390,25 @@ public function testAddUniqueIndexWithNameWorks()
309
390
$ queries = $ blueprintMySql ->toSql ($ this ->db ->connection (), new MySqlGrammar );
310
391
311
392
$ expected = [
312
- 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
313
- 'DROP TABLE users ' ,
314
- 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
315
- 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
316
- 'DROP TABLE __temp__users ' ,
317
- 'alter table `users` add unique `index1`(`name`) ' ,
393
+ [
394
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
395
+ 'DROP TABLE users ' ,
396
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
397
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
398
+ 'DROP TABLE __temp__users ' ,
399
+ 'alter table `users` add unique `index1`(`name`) ' ,
400
+ ],
401
+ [
402
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
403
+ 'DROP TABLE users ' ,
404
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE "BINARY") ' ,
405
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
406
+ 'DROP TABLE __temp__users ' ,
407
+ 'alter table `users` add unique `index1`(`name`) ' ,
408
+ ],
318
409
];
319
410
320
- $ this ->assertEquals ( $ expected , $ queries );
411
+ $ this ->assertContains ( $ queries , $ expected );
321
412
322
413
$ blueprintPostgres = new Blueprint ('users ' , function ($ table ) {
323
414
$ table ->unsignedInteger ('name ' )->nullable ()->unique ('index1 ' )->change ();
0 commit comments