Passed
Push — master ( 434ab7...a77b75 )
by Aimeos
03:04
created

getPreDependencies()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * @license LGPLv3, http://opensource.org/licenses/LGPL-3.0
5
 * @copyright Aimeos (aimeos.org), 2018
6
 */
7
8
9
namespace Aimeos\MW\Setup\Task;
10
11
12
/**
13
 * Removes address and list records without users entry
14
 */
15
class CustomerRemoveLostUserDataLaravel extends \Aimeos\MW\Setup\Task\Base
16
{
17
	private $sql = [
18
		'users_address' => 'DELETE FROM "users_address" WHERE NOT EXISTS ( SELECT "id" FROM "users" AS u WHERE "parentid"=u."id" )',
19
		'users_list' => 'DELETE FROM "users_list" WHERE NOT EXISTS ( SELECT "id" FROM "users" AS u WHERE "parentid"=u."id" )',
20
		'users_property' => 'DELETE FROM "users_property" WHERE NOT EXISTS ( SELECT "id" FROM "users" AS u WHERE "parentid"=u."id" )',
21
	];
22
23
24
	/**
25
	 * Returns the list of task names which depends on this task.
26
	 *
27
	 * @return string[] List of task names
28
	 */
29
	public function getPostDependencies()
30
	{
31
		return ['TablesCreateMShop'];
32
	}
33
34
35
	/**
36
	 * Migrate database schema
37
	 */
38
	public function migrate()
39
	{
40
		$this->msg( 'Remove left over Laravel user references', 0, '' );
41
42
		foreach( $this->sql as $table => $stmt )
43
		{
44
			$this->msg( sprintf( 'Remove unused %1$s records', $table ), 1 );
45
46
			if( $this->schema->tableExists( 'users' ) && $this->schema->tableExists( $table ) )
47
			{
48
				$this->execute( $stmt );
49
				$this->status( 'done' );
50
			}
51
			else
52
			{
53
				$this->status( 'OK' );
54
			}
55
		}
56
	}
57
}
58