3 // Populate the newish `hasWorkboard` column for projects with workboard.
4 // Set the default menu item to "Workboard" for projects which used to have
7 $project_table = new PhabricatorProject();
8 $conn_w = $project_table->establishConnection('w');
10 $panel_table = id(new PhabricatorProfileMenuItemConfiguration());
11 $panel_conn = $panel_table->establishConnection('w');
13 foreach (new LiskMigrationIterator($project_table) as $project) {
14 $columns = queryfx_all(
16 'SELECT * FROM %T WHERE projectPHID = %s',
17 id(new PhabricatorProjectColumn())->getTableName(),
20 // This project has no columns, so we don't need to change anything.
25 // This project has columns, so set its workboard flag.
28 'UPDATE %T SET hasWorkboard = 1 WHERE id = %d',
29 $project->getTableName(),
32 // Try to set the default menu item to "Workboard".
33 $config = queryfx_all(
35 'SELECT * FROM %T WHERE profilePHID = %s',
36 $panel_table->getTableName(),
39 // There are already some settings, so don't touch them.
47 (phid, profilePHID, panelKey, builtinKey, visibility, panelProperties,
48 panelOrder, dateCreated, dateModified)
49 VALUES (%s, %s, %s, %s, %s, %s, %d, %d, %d)',
50 $panel_table->getTableName(),
51 $panel_table->generatePHID(),
53 PhabricatorProjectWorkboardProfileMenuItem
::MENUITEMKEY
,
54 PhabricatorProject
::ITEM_WORKBOARD
,
55 PhabricatorProfileMenuItemConfiguration
::VISIBILITY_DEFAULT
,
58 PhabricatorTime
::getNow(),
59 PhabricatorTime
::getNow());