FOSSology  3.2.0rc1
Open Source License Compliance by Open Source Software
dbmigrate_multiple_copyright_decisions.php
Go to the documentation of this file.
1 <?php
2 /***********************************************************
3 Copyright (C) 2017 Siemens AG
4 
5 This program is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public License
7 version 2 as published by the Free Software Foundation.
8 
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13 
14 You should have received a copy of the GNU General Public License along
15 with this program; if not, write to the Free Software Foundation, Inc.,
16 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17  ***********************************************************/
18 
28 function addBooleanColumnTo($dbManager, $tableName, $columnName = 'is_enabled')
29 {
30  echo "Migrate: Add and setup column=$columnName to table=$tableName\n";
31  if (! $dbManager->existsColumn($tableName, $columnName))
32  {
33  $dbManager->queryOnce("ALTER TABLE $tableName
34  ADD COLUMN $columnName BOOLEAN;");
35  }
36 
37  $dbManager->queryOnce("UPDATE $tableName
38  SET $columnName = " . $tableName . "_pk IN
39  (SELECT MAX(" . $tableName . "_pk) AS enabled_pk
40  FROM $tableName
41  GROUP BY pfile_fk);");
42  $dbManager->queryOnce("ALTER TABLE $tableName
43  ALTER COLUMN $columnName
44  SET NOT NULL;");
45  $dbManager->queryOnce("ALTER TABLE $tableName
46  ALTER COLUMN $columnName
47  SET DEFAULT TRUE;");
48 }
49 
50 foreach (array('copyright','ecc') as $name)
51 {
52  /* @var $dbManager DbManager */
53  addBooleanColumnTo($dbManager, $name.'_decision');
54 }