@@ -30,14 +30,14 @@ public function register(Doku_Event_Handler $controller)
30
30
*/
31
31
public function handleMigrations (Doku_Event $ event , $ param )
32
32
{
33
- if ($ event ->data ['sqlite ' ]-> getAdapter () ->getDbname () !== 'struct ' ) {
33
+ if ($ event ->data ['adapter ' ] ->getDbname () !== 'struct ' ) {
34
34
return ;
35
35
}
36
36
$ to = $ event ->data ['to ' ];
37
37
38
38
if (is_callable (array ($ this , "migration $ to " ))) {
39
39
$ event ->preventDefault ();
40
- $ event ->result = call_user_func (array ($ this , "migration $ to " ), $ event ->data ['sqlite ' ]);
40
+ $ event ->result = call_user_func (array ($ this , "migration $ to " ), $ event ->data ['adapter ' ]);
41
41
}
42
42
}
43
43
@@ -46,16 +46,14 @@ public function handleMigrations(Doku_Event $event, $param)
46
46
*
47
47
* Add a latest column to all existing multi tables
48
48
*
49
- * @param helper_plugin_sqlite $sqlite
49
+ * @param \dokuwiki\plugin\sqlite\SQLiteDB $sqlite
50
50
* @return bool
51
51
*/
52
- protected function migration12 (helper_plugin_sqlite $ sqlite )
52
+ protected function migration12 ($ sqlite )
53
53
{
54
54
/** @noinspection SqlResolve */
55
55
$ sql = "SELECT name FROM sqlite_master WHERE type = 'table' AND name LIKE 'multi_%' " ;
56
- $ res = $ sqlite ->query ($ sql );
57
- $ tables = $ sqlite ->res2arr ($ res );
58
- $ sqlite ->res_close ($ res );
56
+ $ tables = $ sqlite ->queryAll ($ sql );
59
57
60
58
foreach ($ tables as $ row ) {
61
59
$ sql = 'ALTER TABLE ? ADD COLUMN latest INT DEFAULT 1 ' ;
@@ -70,27 +68,23 @@ protected function migration12(helper_plugin_sqlite $sqlite)
70
68
*
71
69
* Unifies previous page and lookup schema types
72
70
*
73
- * @param helper_plugin_sqlite $sqlite
71
+ * @param \dokuwiki\plugin\sqlite\SQLiteDB $sqlite
74
72
* @return bool
75
73
*/
76
- protected function migration16 (helper_plugin_sqlite $ sqlite )
74
+ protected function migration16 ($ sqlite )
77
75
{
78
76
// get tables and their SQL definitions
79
77
$ sql = "SELECT sql, name FROM sqlite_master
80
78
WHERE type = 'table'
81
79
AND (name LIKE 'data_%' OR name LIKE 'multi_%') " ;
82
- $ res = $ sqlite ->query ($ sql );
83
- $ tables = $ sqlite ->res2arr ($ res );
84
- $ sqlite ->res_close ($ res );
80
+ $ tables = $ sqlite ->queryAll ($ sql );
85
81
86
82
// get latest versions of schemas with islookup property
87
83
$ sql = "SELECT MAX(id) AS id, tbl, islookup FROM schemas
88
84
GROUP BY tbl
89
85
" ;
90
- $ res = $ sqlite ->query ($ sql );
91
- $ schemas = $ sqlite ->res2arr ($ res );
86
+ $ schemas = $ sqlite ->queryAll ($ sql );
92
87
93
- $ sqlite ->query ('BEGIN TRANSACTION ' );
94
88
$ ok = true ;
95
89
96
90
// Step 1: move original data to temporary tables and create new ones with modified schemas
@@ -153,8 +147,7 @@ protected function migration16(helper_plugin_sqlite $sqlite)
153
147
154
148
// introduce composite ids in lookup columns
155
149
$ s = $ this ->getLookupColsSql ($ sid );
156
- $ res = $ sqlite ->query ($ s );
157
- $ cols = $ sqlite ->res2arr ($ res );
150
+ $ cols = $ sqlite ->queryAll ($ s );
158
151
159
152
if ($ cols ) {
160
153
foreach ($ cols as $ col ) {
@@ -208,8 +201,7 @@ protected function migration16(helper_plugin_sqlite $sqlite)
208
201
$ sql = "SELECT sql FROM sqlite_master
209
202
WHERE type = 'table'
210
203
AND name = 'schemas' " ;
211
- $ res = $ sqlite ->query ($ sql );
212
- $ t = $ sqlite ->res2arr ($ res );
204
+ $ t = $ sqlite ->queryAll ($ sql );
213
205
$ sql = $ t [0 ]['sql ' ];
214
206
$ sql = str_replace ('islookup INTEGER, ' , '' , $ sql );
215
207
@@ -224,12 +216,7 @@ protected function migration16(helper_plugin_sqlite $sqlite)
224
216
$ s = 'INSERT INTO schemas SELECT id, tbl, ts, user, comment, config FROM temp_schemas ' ;
225
217
$ ok = $ ok && $ sqlite ->query ($ s );
226
218
227
- if (!$ ok ) {
228
- $ sqlite ->query ('ROLLBACK TRANSACTION ' );
229
- return false ;
230
- }
231
- $ sqlite ->query ('COMMIT TRANSACTION ' );
232
- return true ;
219
+ return $ ok ;
233
220
}
234
221
235
222
/**
@@ -239,27 +226,24 @@ protected function migration16(helper_plugin_sqlite $sqlite)
239
226
* All lookups were presumed to reference lookup data, not pages, so the migrated value
240
227
* was always ["", <previous-pid-aka-new-rid>]. For page references it is ["<previous-pid>", 0]
241
228
*
242
- * @param helper_plugin_sqlite $sqlite
229
+ * @param \dokuwiki\plugin\sqlite\SQLiteDB $sqlite
243
230
* @return bool
244
231
*/
245
- protected function migration17 (helper_plugin_sqlite $ sqlite )
232
+ protected function migration17 ($ sqlite )
246
233
{
247
234
$ sql = "SELECT MAX(id) AS id, tbl FROM schemas
248
235
GROUP BY tbl
249
236
" ;
250
- $ res = $ sqlite ->query ($ sql );
251
- $ schemas = $ sqlite ->res2arr ($ res );
237
+ $ schemas = $ sqlite ->queryAll ($ sql );
252
238
253
- $ sqlite ->query ('BEGIN TRANSACTION ' );
254
239
$ ok = true ;
255
240
256
241
foreach ($ schemas as $ schema ) {
257
242
// find lookup columns
258
243
$ name = $ schema ['tbl ' ];
259
244
$ sid = $ schema ['id ' ];
260
245
$ s = $ this ->getLookupColsSql ($ sid );
261
- $ res = $ sqlite ->query ($ s );
262
- $ cols = $ sqlite ->res2arr ($ res );
246
+ $ cols = $ sqlite ->queryAll ($ s );
263
247
264
248
if ($ cols ) {
265
249
$ colnames = array_map (function ($ c ) {
@@ -268,8 +252,7 @@ protected function migration17(helper_plugin_sqlite $sqlite)
268
252
269
253
// data_ tables
270
254
$ s = 'SELECT pid, rid, rev, ' . implode (', ' , $ colnames ) . " FROM data_ $ name " ;
271
- $ res = $ sqlite ->query ($ s );
272
- $ allValues = $ sqlite ->res2arr ($ res );
255
+ $ allValues = $ sqlite ->queryAll ($ s );
273
256
274
257
if (!empty ($ allValues )) {
275
258
foreach ($ allValues as $ row ) {
@@ -289,8 +272,7 @@ protected function migration17(helper_plugin_sqlite $sqlite)
289
272
290
273
// multi_ tables
291
274
$ s = "SELECT colref, pid, rid, rev, row, value FROM multi_ $ name " ;
292
- $ res = $ sqlite ->query ($ s );
293
- $ allValues = $ sqlite ->res2arr ($ res );
275
+ $ allValues = $ sqlite ->queryAll ($ s );
294
276
295
277
if (!empty ($ allValues )) {
296
278
foreach ($ allValues as $ row ) {
@@ -312,64 +294,45 @@ protected function migration17(helper_plugin_sqlite $sqlite)
312
294
}
313
295
}
314
296
315
- if (!$ ok ) {
316
- $ sqlite ->query ('ROLLBACK TRANSACTION ' );
317
- return false ;
318
- }
319
- $ sqlite ->query ('COMMIT TRANSACTION ' );
320
- return true ;
297
+ return $ ok ;
321
298
}
322
299
323
300
/**
324
301
* Removes a temp table left over by migration 16
325
302
*
326
- * @param helper_plugin_sqlite $sqlite
303
+ * @param \dokuwiki\plugin\sqlite\SQLiteDB $sqlite
327
304
* @return bool
328
305
*/
329
- protected function migration18 (helper_plugin_sqlite $ sqlite )
306
+ protected function migration18 ($ sqlite )
330
307
{
331
308
$ ok = true ;
332
- $ sqlite ->query ('BEGIN TRANSACTION ' );
333
309
334
310
$ sql = 'DROP TABLE IF EXISTS temp_schemas ' ;
335
311
$ ok = $ ok && $ sqlite ->query ($ sql );
336
312
337
- if (!$ ok ) {
338
- $ sqlite ->query ('ROLLBACK TRANSACTION ' );
339
- return false ;
340
- }
341
- $ sqlite ->query ('COMMIT TRANSACTION ' );
342
- return true ;
313
+ return $ ok ;
343
314
}
344
315
/**
345
316
* Executes Migration 19
346
317
*
347
318
* Add "published" column to all existing tables
348
319
*
349
- * @param helper_plugin_sqlite $sqlite
320
+ * @param \dokuwiki\plugin\sqlite\SQLiteDB $sqlite
350
321
* @return bool
351
322
*/
352
- protected function migration19 (helper_plugin_sqlite $ sqlite )
323
+ protected function migration19 ($ sqlite )
353
324
{
354
325
$ ok = true ;
355
- $ sqlite ->query ('BEGIN TRANSACTION ' );
356
326
357
327
/** @noinspection SqlResolve */
358
328
$ sql = "SELECT name FROM sqlite_master WHERE type = 'table' AND (name LIKE 'data_%' OR name LIKE 'multi_%') " ;
359
- $ res = $ sqlite ->query ($ sql );
360
- $ tables = $ sqlite ->res2arr ($ res );
361
- $ sqlite ->res_close ($ res );
329
+ $ tables = $ sqlite ->queryAll ($ sql );
362
330
363
331
foreach ($ tables as $ row ) {
364
332
$ sql = 'ALTER TABLE ? ADD COLUMN published INT DEFAULT NULL ' ;
365
333
$ ok = $ ok && $ sqlite ->query ($ sql , $ row ['name ' ]);
366
334
}
367
- if (!$ ok ) {
368
- $ sqlite ->query ('ROLLBACK TRANSACTION ' );
369
- return false ;
370
- }
371
- $ sqlite ->query ('COMMIT TRANSACTION ' );
372
- return true ;
335
+ return $ ok ;
373
336
}
374
337
375
338
0 commit comments