first commit
This commit is contained in:
207
upgrade/list/upgrade.2013-06-14.php
Normal file
207
upgrade/list/upgrade.2013-06-14.php
Normal file
@@ -0,0 +1,207 @@
|
||||
<?php
|
||||
|
||||
class Upgrade20 extends Upgrade
|
||||
{
|
||||
public function upgrade()
|
||||
{
|
||||
$changed = false;
|
||||
|
||||
// jestlize je opravnene udelat upgrade, tak provest
|
||||
if ($this->checkRightfulness_1()) {
|
||||
$this->makeChanges_1();
|
||||
$changed = true;
|
||||
}
|
||||
|
||||
if ($this->checkRightfulness_2()) {
|
||||
$this->makeChanges_2();
|
||||
$changed = true;
|
||||
}
|
||||
|
||||
if (findModule('products_parameters')) {
|
||||
if ($this->checkRightfulness_3()) {
|
||||
$this->makeChanges_3();
|
||||
$changed = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->checkRightfulness_4()) {
|
||||
$this->makeChanges_4();
|
||||
$changed = true;
|
||||
}
|
||||
|
||||
if (findModule('automatic_import')) {
|
||||
if ($this->checkRightfulness_5()) {
|
||||
$this->makeChanges_5();
|
||||
$changed = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ($changed == false) {
|
||||
$this->noChanges();
|
||||
}
|
||||
|
||||
$this->printResult();
|
||||
}
|
||||
|
||||
// overi, jestli je opravnene provest upgrade
|
||||
public function checkRightfulness_1()
|
||||
{
|
||||
$change = true;
|
||||
|
||||
$SQL = sqlQuery('SHOW FIELDS FROM '.getTableName('products'));
|
||||
while ($row = sqlFetchArray($SQL)) {
|
||||
if ($row['Field'] == 'meta_title') {
|
||||
$change = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $change;
|
||||
}
|
||||
|
||||
// provest samotny upgrade
|
||||
public function makeChanges_1()
|
||||
{
|
||||
$SQL = sqlQuery('ALTER TABLE '.getTableName('products').' ADD
|
||||
(`meta_title` VARCHAR(50) NULL DEFAULT NULL,
|
||||
`meta_description` VARCHAR(50) NULL DEFAULT NULL,
|
||||
`meta_keywords` VARCHAR(50) NULL DEFAULT NULL)');
|
||||
|
||||
$this->upgradeOK();
|
||||
}
|
||||
|
||||
// overi, jestli je opravnene provest upgrade
|
||||
public function checkRightfulness_2()
|
||||
{
|
||||
$change = true;
|
||||
|
||||
$SQL = sqlQuery('SHOW FIELDS FROM '.getTableName('sections'));
|
||||
while ($row = sqlFetchArray($SQL)) {
|
||||
if ($row['Field'] == 'meta_title') {
|
||||
$change = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $change;
|
||||
}
|
||||
|
||||
// provest samotny upgrade
|
||||
public function makeChanges_2()
|
||||
{
|
||||
$SQL = sqlQuery('ALTER TABLE '.getTableName('sections').' ADD
|
||||
(`meta_title` VARCHAR(50) NULL DEFAULT NULL,
|
||||
`meta_description` VARCHAR(50) NULL DEFAULT NULL,
|
||||
`meta_keywords` VARCHAR(50) NULL DEFAULT NULL)');
|
||||
|
||||
$this->upgradeOK();
|
||||
}
|
||||
|
||||
// overi, jestli je opravnene provest upgrade
|
||||
public function checkRightfulness_3()
|
||||
{
|
||||
$change = !$this->checkColumnExists('parameters_products', 'value');
|
||||
|
||||
$SQL = sqlQuery('SHOW FIELDS FROM '.getTableName('parameters_products'));
|
||||
while ($row = sqlFetchArray($SQL)) {
|
||||
if ($row['Field'] == 'value' && substr($row['Type'], 0, 7) == 'varchar') {
|
||||
$change = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $change;
|
||||
}
|
||||
|
||||
// provest samotny upgrade
|
||||
public function makeChanges_3()
|
||||
{
|
||||
sqlQuery('ALTER TABLE '.getTableName('parameters_products').' ADD INDEX ( `unit` )');
|
||||
sqlQuery('ALTER TABLE '.getTableName('parameters_products').' CHANGE `value` `value` VARCHAR( 100 ) NOT NULL');
|
||||
sqlQuery('ALTER TABLE '.getTableName('parameters_products').' ADD INDEX ( `value` )');
|
||||
|
||||
sqlQuery('ALTER TABLE '.getTableName('parameters_products').' ADD INDEX ( `id_product` )');
|
||||
|
||||
sqlQuery('ALTER TABLE '.getTableName('parameters_products')." CHANGE `id_product` `id_product` INT( 11 ) NOT NULL DEFAULT '0'");
|
||||
|
||||
sqlQuery('DELETE pp FROM '.getTableName('parameters_products').' pp
|
||||
LEFT JOIN '.getTableName('products').' p ON p.id = pp.id_product
|
||||
WHERE p.id IS NULL');
|
||||
|
||||
sqlQuery('ALTER TABLE '.getTableName('parameters_products').' ADD FOREIGN KEY ( `id_product` ) REFERENCES `products` (
|
||||
`id`
|
||||
) ON DELETE CASCADE ON UPDATE CASCADE ;');
|
||||
|
||||
sqlQuery('ALTER TABLE '.getTableName('parameters_products').' ADD FOREIGN KEY ( `id_parameter` ) REFERENCES `parameters` (
|
||||
`id`
|
||||
) ON DELETE CASCADE ON UPDATE CASCADE ;');
|
||||
|
||||
sqlQuery('ALTER TABLE '.getTableName('parameters_sections').' ADD FOREIGN KEY ( `id_parameter` ) REFERENCES `parameters` (
|
||||
`id`
|
||||
) ON DELETE CASCADE ON UPDATE CASCADE ;');
|
||||
|
||||
sqlQuery('ALTER TABLE '.getTableName('parameters_sections').' ADD FOREIGN KEY ( `id_section` ) REFERENCES `sections` (
|
||||
`id`
|
||||
) ON DELETE CASCADE ON UPDATE CASCADE ;');
|
||||
|
||||
$this->upgradeOK();
|
||||
}
|
||||
|
||||
// overi, jestli je opravnene provest upgrade
|
||||
public function checkRightfulness_4()
|
||||
{
|
||||
$change = true;
|
||||
|
||||
$SQL = sqlQuery("SHOW TABLES LIKE '".getTableName('products_variations_sections', false)."'");
|
||||
if (sqlNumRows($SQL) > 0) {
|
||||
$change = false;
|
||||
}
|
||||
|
||||
return $change;
|
||||
}
|
||||
|
||||
// provest samotny upgrade
|
||||
public function makeChanges_4()
|
||||
{
|
||||
sqlQuery('CREATE TABLE IF NOT EXISTS '.getTableName('products_variations_sections').' (
|
||||
`id_label` INT(11) NOT NULL,
|
||||
`id_section` INT(11) NOT NULL,
|
||||
`weight` INT(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`id_label`, `id_section`)
|
||||
) ENGINE=InnoDB ');
|
||||
|
||||
sqlQuery('ALTER TABLE '.getTableName('products_variations_sections').' ADD FOREIGN KEY ( `id_label` ) REFERENCES `products_variations_choices_labels` (
|
||||
`id`
|
||||
) ON DELETE CASCADE ON UPDATE CASCADE ;');
|
||||
|
||||
sqlQuery('ALTER TABLE '.getTableName('products_variations_sections').' ADD FOREIGN KEY ( `id_section` ) REFERENCES `sections` (
|
||||
`id`
|
||||
) ON DELETE CASCADE ON UPDATE CASCADE ;');
|
||||
|
||||
$this->upgradeOK();
|
||||
}
|
||||
|
||||
// overi, jestli je opravnene provest upgrade
|
||||
public function checkRightfulness_5()
|
||||
{
|
||||
$change = true;
|
||||
|
||||
$SQL = sqlQuery('SHOW FIELDS FROM '.getTableName('import'));
|
||||
while ($row = sqlFetchArray($SQL)) {
|
||||
if ($row['Field'] == 'pair') {
|
||||
$change = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $change;
|
||||
}
|
||||
|
||||
// provest samotny upgrade
|
||||
public function makeChanges_5()
|
||||
{
|
||||
sqlQuery('ALTER TABLE '.getTableName('import').' ADD `pair` BOOLEAN NOT NULL DEFAULT TRUE');
|
||||
|
||||
$this->upgradeOK();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user