1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-31 22:10:45 +02:00

Merge pull request #5808 from marc1706/ticket/16284

[ticket/16284] Move 4.0 migrations to v400 folder
This commit is contained in:
Marc Alexander
2020-01-14 21:20:09 +01:00
committed by GitHub
38 changed files with 625 additions and 352 deletions

View File

@@ -1,33 +0,0 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v330;
class acp_storage_module extends \phpbb\db\migration\migration
{
public function update_data()
{
return array(
array('module.add', array(
'acp',
'ACP_SERVER_CONFIGURATION',
array(
'module_basename' => 'acp_storage',
'module_langname' => 'ACP_STORAGE_SETTINGS',
'module_mode' => 'settings',
'module_auth' => 'acl_a_storage',
),
)),
);
}
}

View File

@@ -1,28 +0,0 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v330;
class add_storage_permission extends \phpbb\db\migration\migration
{
public function update_data()
{
return array(
// Add permission
array('permission.add', array('a_storage')),
// Set permissions
array('permission.permission_set', array('ROLE_ADMIN_FULL', 'a_storage')),
);
}
}

View File

@@ -1,39 +0,0 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v330;
class extensions_composer extends \phpbb\db\migration\migration
{
public function update_data()
{
return array(
array('config.add', array('exts_composer_repositories', json_encode([
'https://www.phpbb.com/customise/db/composer/',
], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES))),
array('config.add', array('exts_composer_packagist', false)),
array('config.add', array('exts_composer_json_file', 'composer-ext.json')),
array('config.add', array('exts_composer_vendor_dir', 'vendor-ext/')),
array('config.add', array('exts_composer_enable_on_install', false)),
array('config.add', array('exts_composer_purge_on_remove', true)),
array('module.add', array(
'acp',
'ACP_EXTENSION_MANAGEMENT',
array(
'module_basename' => 'acp_extensions',
'modes' => array('catalog'),
),
)),
);
}
}

View File

@@ -1,39 +0,0 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v330;
class remove_attachment_download_mode extends \phpbb\db\migration\migration
{
public function update_schema()
{
return array(
'drop_columns' => array(
$this->table_prefix . 'extension_groups' => array(
'download_mode',
),
),
);
}
public function revert_schema()
{
return array(
'add_columns' => array(
$this->table_prefix . 'extension_groups' => array(
'download_mode' => array('BOOL', '1'),
),
),
);
}
}

View File

@@ -1,44 +0,0 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v330;
class storage_adapter_local_subfolders extends \phpbb\db\migration\migration
{
static public function depends_on()
{
return array(
'\phpbb\db\migration\data\v330\storage_attachment',
'\phpbb\db\migration\data\v330\storage_avatar',
'\phpbb\db\migration\data\v330\storage_backup',
);
}
public function update_data()
{
return array(
array('if', array(
($this->config['storage\\attachment\\provider'] == \phpbb\storage\provider\local::class),
array('config.add', array('storage\\attachment\\config\\subfolders', '0')),
)),
array('if', array(
($this->config['storage\\avatar\\provider'] == \phpbb\storage\provider\local::class),
array('config.add', array('storage\\avatar\\config\\subfolders', '0')),
)),
array('if', array(
($this->config['storage\\backup\\provider'] == \phpbb\storage\provider\local::class),
array('config.add', array('storage\\backup\\config\\subfolders', '0')),
)),
);
}
}

View File

@@ -1,26 +0,0 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v330;
class storage_attachment extends \phpbb\db\migration\migration
{
public function update_data()
{
return array(
array('config.add', array('storage\\attachment\\provider', \phpbb\storage\provider\local::class)),
array('config.add', array('storage\\attachment\\config\\path', $this->config['upload_path'])),
array('config.remove', array('upload_path')),
);
}
}

View File

@@ -1,26 +0,0 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v330;
class storage_avatar extends \phpbb\db\migration\migration
{
public function update_data()
{
return array(
array('config.add', array('storage\\avatar\\provider', \phpbb\storage\provider\local::class)),
array('config.add', array('storage\\avatar\\config\\path', $this->config['avatar_path'])),
array('config.remove', array('avatar_path')),
);
}
}

View File

@@ -1,40 +0,0 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v330;
class storage_backup extends \phpbb\db\migration\migration
{
public function update_schema()
{
return array(
'add_tables' => array(
$this->table_prefix . 'backups' => array(
'COLUMNS' => array(
'backup_id' => array('UINT', null, 'auto_increment'),
'filename' => array('VCHAR', ''),
),
'PRIMARY_KEY' => 'backup_id',
),
),
);
}
public function update_data()
{
return array(
array('config.add', array('storage\\backup\\provider', \phpbb\storage\provider\local::class)),
array('config.add', array('storage\\backup\\config\\path', 'store')),
);
}
}

View File

@@ -0,0 +1,55 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v400;
use phpbb\db\migration\migration;
class acp_storage_module extends migration
{
public function effectively_installed()
{
$sql = 'SELECT module_id
FROM ' . $this->tables['modules'] . "
WHERE module_class = 'acp'
AND module_langname = 'ACP_STORAGE_SETTINGS'";
$result = $this->db->sql_query($sql);
$acp_storage_module_id = (int) $this->db->sql_fetchfield('module_id');
$this->db->sql_freeresult($result);
return !empty($acp_storage_module_id);
}
static public function depends_on()
{
return [
'\phpbb\db\migration\data\v400\dev',
];
}
public function update_data()
{
return [
['module.add', [
'acp',
'ACP_SERVER_CONFIGURATION',
[
'module_basename' => 'acp_storage',
'module_langname' => 'ACP_STORAGE_SETTINGS',
'module_mode' => 'settings',
'module_auth' => 'acl_a_storage',
],
]],
];
}
}

View File

@@ -0,0 +1,49 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v400;
use phpbb\db\migration\migration;
class add_storage_permission extends migration
{
public function effectively_installed()
{
$sql = 'SELECT auth_option_id
FROM ' . $this->tables['acl_options'] . "
WHERE auth_option = 'a_storage'";
$result = $this->db->sql_query($sql);
$a_storage_option_id = (int) $this->db->sql_fetchfield('auth_option_id');
$this->db->sql_freeresult($result);
return !empty($a_storage_option_id);
}
static public function depends_on()
{
return [
'\phpbb\db\migration\data\v400\dev',
];
}
public function update_data()
{
return [
// Add permission
['permission.add', ['a_storage']],
// Set permissions
['permission.permission_set', ['ROLE_ADMIN_FULL', 'a_storage']],
];
}
}

View File

@@ -0,0 +1,36 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v400;
use phpbb\db\migration\migration;
class dev extends migration
{
public function effectively_installed()
{
return version_compare($this->config['version'], '4.0.0-dev', '>=');
}
static public function depends_on()
{
return ['\phpbb\db\migration\data\v330\v330rc1'];
}
public function update_data()
{
return [
['config.update', ['version', '4.0.0-dev']],
];
}
}

View File

@@ -0,0 +1,53 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v400;
use phpbb\db\migration\migration;
class extensions_composer extends migration
{
public function effectively_installed()
{
return $this->config->offsetExists('exts_composer_repositories');
}
static public function depends_on()
{
return [
'\phpbb\db\migration\data\v400\dev',
];
}
public function update_data()
{
return [
['config.add', ['exts_composer_repositories', json_encode([
'https://www.phpbb.com/customise/db/composer/',
], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)]],
['config.add', ['exts_composer_packagist', false]],
['config.add', ['exts_composer_json_file', 'composer-ext.json']],
['config.add', ['exts_composer_vendor_dir', 'vendor-ext/']],
['config.add', ['exts_composer_enable_on_install', false]],
['config.add', ['exts_composer_purge_on_remove', true]],
['module.add', [
'acp',
'ACP_EXTENSION_MANAGEMENT',
[
'module_basename' => 'acp_extensions',
'modes' => ['catalog'],
],
]],
];
}
}

View File

@@ -11,23 +11,30 @@
*
*/
namespace phpbb\db\migration\data\v330;
namespace phpbb\db\migration\data\v400;
class extensions_composer_2 extends \phpbb\db\migration\migration
use phpbb\db\migration\migration;
class extensions_composer_2 extends migration
{
public function effectively_installed()
{
return strpos($this->config['exts_composer_repositories'], 'https://satis.phpbb.com') !== false;
}
public function update_data()
{
$repositories = json_decode($this->config['exts_composer_repositories'], true);
$repositories[] = 'https://satis.phpbb.com';
$repositories = array_unique($repositories);
return array(
array('config.update', array('exts_composer_repositories', json_encode($repositories, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES))),
);
return [
['config.update', ['exts_composer_repositories', json_encode($repositories, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)]],
];
}
static public function depends_on()
{
return array('\phpbb\db\migration\data\v330\extensions_composer');
return ['\phpbb\db\migration\data\v400\extensions_composer'];
}
}

View File

@@ -0,0 +1,53 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v400;
use phpbb\db\migration\migration;
class remove_attachment_download_mode extends migration
{
public function effectively_installed()
{
return !$this->db_tools->sql_column_exists($this->tables['extension_groups'], 'download_mode');
}
static public function depends_on()
{
return [
'\phpbb\db\migration\data\v400\dev',
];
}
public function update_schema()
{
return [
'drop_columns' => [
$this->table_prefix . 'extension_groups' => [
'download_mode',
],
],
];
}
public function revert_schema()
{
return [
'add_columns' => [
$this->table_prefix . 'extension_groups' => [
'download_mode' => ['BOOL', '1'],
],
],
];
}
}

View File

@@ -0,0 +1,54 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v400;
use phpbb\db\migration\migration;
use phpbb\storage\provider\local;
class storage_adapter_local_subfolders extends migration
{
public function effectively_installed()
{
return $this->config->offsetExists('storage\\attachment\\config\\subfolders') ||
$this->config->offsetExists('storage\\avatar\\config\\subfolders') ||
$this->config->offsetExists('storage\\backup\\config\\subfolders');
}
static public function depends_on()
{
return [
'\phpbb\db\migration\data\v400\storage_attachment',
'\phpbb\db\migration\data\v400\storage_avatar',
'\phpbb\db\migration\data\v400\storage_backup',
];
}
public function update_data()
{
return [
['if', [
($this->config['storage\\attachment\\provider'] == local::class),
['config.add', ['storage\\attachment\\config\\subfolders', '0']],
]],
['if', [
($this->config['storage\\avatar\\provider'] == local::class),
['config.add', ['storage\\avatar\\config\\subfolders', '0']],
]],
['if', [
($this->config['storage\\backup\\provider'] == local::class),
['config.add', ['storage\\backup\\config\\subfolders', '0']],
]],
];
}
}

View File

@@ -0,0 +1,41 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v400;
use phpbb\db\migration\migration;
use phpbb\storage\provider\local;
class storage_attachment extends migration
{
public function effectively_installed()
{
return $this->config->offsetExists('storage\\attachment\\provider');
}
static public function depends_on()
{
return [
'\phpbb\db\migration\data\v400\dev',
];
}
public function update_data()
{
return [
['config.add', ['storage\\attachment\\provider', local::class]],
['config.add', ['storage\\attachment\\config\\path', $this->config['upload_path']]],
['config.remove', ['upload_path']],
];
}
}

View File

@@ -0,0 +1,41 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v400;
use phpbb\db\migration\migration;
use phpbb\storage\provider\local;
class storage_avatar extends migration
{
public function effectively_installed()
{
return $this->config->offsetExists('storage\\avatar\\provider');
}
static public function depends_on()
{
return [
'\phpbb\db\migration\data\v400\dev',
];
}
public function update_data()
{
return [
['config.add', ['storage\\avatar\\provider', local::class]],
['config.add', ['storage\\avatar\\config\\path', $this->config['avatar_path']]],
['config.remove', ['avatar_path']],
];
}
}

View File

@@ -0,0 +1,55 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v400;
use phpbb\db\migration\migration;
use phpbb\storage\provider\local;
class storage_backup extends migration
{
public function effectively_installed()
{
return $this->db_tools->sql_table_exists($this->tables['backups']);
}
static public function depends_on()
{
return [
'\phpbb\db\migration\data\v400\dev',
];
}
public function update_schema()
{
return [
'add_tables' => [
$this->table_prefix . 'backups' => [
'COLUMNS' => [
'backup_id' => ['UINT', null, 'auto_increment'],
'filename' => ['VCHAR', ''],
],
'PRIMARY_KEY' => 'backup_id',
],
],
];
}
public function update_data()
{
return [
['config.add', ['storage\\backup\\provider', local::class]],
['config.add', ['storage\\backup\\config\\path', 'store']],
];
}
}

View File

@@ -11,45 +11,52 @@
*
*/
namespace phpbb\db\migration\data\v330;
namespace phpbb\db\migration\data\v400;
use phpbb\db\migration\container_aware_migration;
use phpbb\storage\exception\exception;
use phpbb\storage\storage;
class storage_track extends \phpbb\db\migration\container_aware_migration
class storage_track extends container_aware_migration
{
public function effectively_installed()
{
return $this->db_tools->sql_table_exists($this->tables['storage']);
}
static public function depends_on()
{
return array(
'\phpbb\db\migration\data\v330\storage_attachment',
'\phpbb\db\migration\data\v330\storage_avatar',
'\phpbb\db\migration\data\v330\storage_backup',
);
return [
'\phpbb\db\migration\data\v400\storage_attachment',
'\phpbb\db\migration\data\v400\storage_avatar',
'\phpbb\db\migration\data\v400\storage_backup',
];
}
public function update_schema()
{
return array(
'add_tables' => array(
$this->table_prefix . 'storage' => array(
'COLUMNS' => array(
'file_id' => array('UINT', null, 'auto_increment'),
'file_path' => array('VCHAR', ''),
'storage' => array('VCHAR', ''),
'filesize' => array('UINT:20', 0),
),
return [
'add_tables' => [
$this->table_prefix . 'storage' => [
'COLUMNS' => [
'file_id' => ['UINT', null, 'auto_increment'],
'file_path' => ['VCHAR', ''],
'storage' => ['VCHAR', ''],
'filesize' => ['UINT:20', 0],
],
'PRIMARY_KEY' => 'file_id',
),
),
);
],
],
];
}
public function revert_schema()
{
return array(
'drop_tables' => array(
return [
'drop_tables' => [
$this->table_prefix . 'storage',
),
);
],
];
}
public function update_data()
@@ -90,9 +97,9 @@ class storage_track extends \phpbb\db\migration\container_aware_migration
{
$storage->track_file($this->config['avatar_salt'] . '_' . ($avatar_group ? 'g' : '') . $filename . '.' . $ext);
}
catch (\phpbb\storage\exception\exception $e)
catch (exception $e)
{
// If file don't exist, don't track it
// If file doesn't exist, don't track it
}
}
$this->db->sql_freeresult($result);
@@ -114,9 +121,9 @@ class storage_track extends \phpbb\db\migration\container_aware_migration
{
$storage->track_file($row['physical_filename']);
}
catch (\phpbb\storage\exception\exception $e)
catch (exception $e)
{
// If file don't exist, don't track it
// If file doesn't exist, don't track it
}
if ($row['thumbnail'] == 1)
@@ -125,9 +132,9 @@ class storage_track extends \phpbb\db\migration\container_aware_migration
{
$storage->track_file('thumb_' . $row['physical_filename']);
}
catch (\phpbb\storage\exception\exception $e)
catch (exception $e)
{
// If file don't exist, don't track it
// If file doesn't exist, don't track it
}
}
}
@@ -150,9 +157,9 @@ class storage_track extends \phpbb\db\migration\container_aware_migration
{
$storage->track_file($row['filename']);
}
catch (\phpbb\storage\exception\exception $e)
catch (exception $e)
{
// If file don't exist, don't track it
// If file doesn't exist, don't track it
}
}