// fix upgrade problems #PSCFV-2457 #PSCFV-2462 #PSCFV-1225

// (also reverted upgrade modifications from rev. 14682 15127 15129 15134 15165)

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@15465 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
mMarinetti
2012-05-20 10:10:21 +00:00
parent fee3790ffd
commit 2cf309cd35
11 changed files with 137 additions and 29 deletions
@@ -27,7 +27,9 @@
function add_column_order_state_deleted_if_not_exists()
{
$res = true;
$column = Db::getInstance()->executeS('SHOW FIELDS FROM `'._DB_PREFIX_.'order_state` LIKE "deleted"');
if (empty($column))
$res = Db::getInstance()->execute('ALTER TABLE `'._DB_PREFIX_.'order_state`
ADD COLUMN `deleted` tinyint(1) UNSIGNED NOT NULL default "0" AFTER `paid`');
@@ -0,0 +1,57 @@
<?php
/*
* 2007-2012 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2012 PrestaShop SA
* @version Release: $Revision: 13573 $
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
function add_missing_columns_customer()
{
$db = Db::getInstance();
$res = true;
$current_fields = $db->executeS('SHOW FIELDS FROM `'._DB_PREFIX_.'customer`');
foreach ($current_fields as $k => $field)
$current_fields[$k] = $field['Field'];
$missing_fields = array(
'id_risk' => 'ALTER TABLE `'._DB_PREFIX_.'customer`
ADD `id_risk` int(10) unsigned NOT NULL DEFAULT "1"',
'company' => 'ALTER TABLE `'._DB_PREFIX_.'customer` ADD `company` varchar(64)',
'siret' => 'ALTER TABLE `'._DB_PREFIX_.'customer` ADD `siret` varchar(14)',
'ape' => 'ALTER TABLE `'._DB_PREFIX_.'customer` ADD `ape` varchar(5)',
'website' => 'ALTER TABLE `'._DB_PREFIX_.'customer` ADD `website` varchar(128)',
'outstanding_allow_amount' => 'ALTER TABLE `'._DB_PREFIX_.'customer`
ADD `outstanding_allow_amount` DECIMAL( 10,6 ) NOT NULL default "0.00"',
'show_public_prices' => 'ALTER TABLE `'._DB_PREFIX_.'customer`
ADD `show_public_prices` tinyint(1) unsigned NOT NULL default "0"',
'max_payment_days' => 'ALTER TABLE `'._DB_PREFIX_.'customer`
ADD `max_payment_days` int(10) unsigned NOT NULL default "60"'
);
foreach ($missing_fields as $field => $query)
if (!in_array($field, $current_fields));
$res &= $db->execute($query);
return $res;
}
@@ -0,0 +1,47 @@
<?php
/*
* 2007-2012 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2012 PrestaShop SA
* @version Release: $Revision: 13573 $
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
function add_missing_shop_column_pagenotfound()
{
$res = true;
$exists = Db::getInstance()->executeS('SHOW TABLE LIKE "'._DB_PREFIX_.'pagenotfound"');
if (count($exists))
{
$fields = Db::getInstance()->executeS('SHOW FIELDS FROM `'._DB_PREFIX_.'pagenotfound`');
foreach ($fields as $k => $field)
$fields[$k] = $field['Field'];
if (!in_array('id_shop_group', $fields))
$res &= Db::getInstance()->execute('ALTER TABLE `'._DB_PREFIX_.'pagenotfound`
ADD `id_shop_group` INT(10) AFTER `id_pagenotfound`');
if (!in_array('id_shop', $fields))
$res &= DB::getInstance()->execute('ALTER TABLE `'._DB_PREFIX_.'pagenotfound`
ADD `id_shop` INT(10) AFTER `id_pagenotfound`');
}
return $res;
}
@@ -54,17 +54,17 @@ function create_multistore()
VALUES(1, \''.pSQL($shop_domain).'\', \''.pSQL($shop_domain_ssl).'\', \''.pSQL($_PS_DIRECTORY_).'\', \'\', 1, 1)');
// Stock conversion
$sql = 'INSERT INTO `'._DB_PREFIX_.'.stock` (`id_product`, `id_product_attribute`, `id_shop_group`, `id_shop`, `quantity`)
$sql = 'INSERT INTO `'._DB_PREFIX_.'.stock` (`id_product`, `id_product_attribute`, `id_group_shop`, `id_shop`, `quantity`)
VALUES (SELECT `p.id_product`, 0, 1, 1, `p.quantity` FROM `'._DB_PREFIX_.'.product` p);';
$res &= Db::getInstance()->execute($sql);
$sql = 'INSERT INTO `'._DB_PREFIX_.'.stock` (`id_product`, `id_product_attribute`, `id_shop_group`, `id_shop`, `quantity`)
$sql = 'INSERT INTO `'._DB_PREFIX_.'.stock` (`id_product`, `id_product_attribute`, `id_group_shop`, `id_shop`, `quantity`)
VALUES (SELECT `id_product`, `id_product_attribute`, 1, 1, `quantity` FROM `'._DB_PREFIX_.'product_attribute` p);';
$res &= Db::getInstance()->execute($sql);
// Add admin tabs
$shopTabId = add_new_tab('AdminShop', 'it:Shops|es:Shops|fr:Boutiques|de:Shops|en:Shops', 0, true);
add_new_tab('AdminShopGroup', 'it:Group Shops|es:Group Shops|fr:Groupes de boutique|de:Group Shops|en:Group Shops', $shopTabId);
add_new_tab('AdminGroupShop', 'it:Group Shops|es:Group Shops|fr:Groupes de boutique|de:Group Shops|en:Group Shops', $shopTabId);
add_new_tab('AdminShopUrl', 'it:Shop Urls|es:Shop Urls|fr:URLs de boutique|de:Shop Urls|en:Shop Urls', $shopTabId);
return $res;
@@ -32,7 +32,7 @@ function module_blockwishlist_multishop()
{
$res = Db::getInstance()->execute('ALTER TABLE `'._DB_PREFIX_.'wishlist`
ADD `id_shop` INTEGER NOT NULL default \'1\' AFTER `counter`,
ADD `id_shop_group` INTEGER NOT NULL default \'1\' AFTER `id_shop`');
ADD `id_group_shop` INTEGER NOT NULL default \'1\' AFTER `id_shop`');
return $res;
}