private function getPluginSettingsMigrations($queries)
{
$queries[] = $this->migration->db->createTable($this->pluginSettingsTable, array('plugin_name' => 'VARCHAR(60) NOT NULL', 'setting_name' => 'VARCHAR(255) NOT NULL', 'setting_value' => 'LONGTEXT NOT NULL', 'user_login' => "VARCHAR(100) NOT NULL DEFAULT ''"));
$queries[] = $this->migration->db->addIndex($this->pluginSettingsTable, array('plugin_name', 'user_login'));
$optionTable = Common::prefixTable('option');
$query = 'SELECT `option_name`, `option_value` FROM `' . $optionTable . '` WHERE `option_name` LIKE "Plugin_%_Settings"';
$options = Db::get()->fetchAll($query);
foreach ($options as $option) {
$name = $option['option_name'];
$pluginName = str_replace(array('Plugin_', '_Settings'), '', $name);
$values = @unserialize($option['option_value']);
if (empty($values)) {
continue;
}
foreach ($values as $settingName => $settingValue) {
if (!is_array($settingValue)) {
$settingValue = array($settingValue);
}
foreach ($settingValue as $val) {
$queries[] = $this->createPluginSettingQuery($pluginName, $settingName, $val);
}
}
}
$queries[] = $this->migration->db->sql(sprintf('DELETE FROM `%s` WHERE `option_name` like "Plugin_%%_Settings"', $optionTable));
return $queries;
}