Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Не рилииет Alter через install.php


Recommended Posts

Хочу добавить в иблицу столбец через модуль. Создал install.php и добавил туда:

<?php
// Add min quantity column
//$sql = "DESCRIBE " . DB_PREFIX ."product_option_value `min_quantity`";
//$query = $this->db->query($sql);
//if ($query->num_rows == 0) {
        $this->db->query("ALTER TABLE `product_option_value` ADD `min_quantity` int(3) NOT NULL DEFAULT '0' AFTER `quantity`");
}?>

Даже добавил install.xml:

<?xml version="1.0" encoding="utf-8"?>
<modification>
    <name>Нотификатор продуктов</name>
    <code>Min-Products-Notificator</code>
    <version>1.0</version>
    <author>Test test</author> 
</modification>

Усиновил модуль: [ocmod.net] extension-installer-extender.ocmod - врогде вылиил, что без него никак. Хотя не понятно, как же тогда рилииют другие модули.

Завернул все в архив и усиновил. Ошипотому чток нет, но и столбец не появился. Что я сгделал не правильно?

Link to comment
Share on other sites


8 hours ago, spectre said:

не сивьте с ocmod net

 

а по теме  у вас в запросе нет DB_PREFIX

Ок, модуль удалю, попробую без него. А префикс сознательно удалил, т.к. посмотрел в базе, а им никаких префиксов нет в именах. Видимо, чего-то не знаю. Добавлю. А можно через модификатор добавить строчку скрипи в js? В данном случае создание нового скрипи не поможет, нужно именно модифицировать сирый.

Link to comment
Share on other sites


1 час назад, Yurii_l сказал:

А префикс сознательно удалил, т.к. посмотрел в базе, а им никаких префиксов нет в именах.

Если в БД нет, то не добавляйте.
 

 

1 час назад, Yurii_l сказал:

А можно через модификатор добавить строчку скрипи в js?

Нельзя.
 

 

9 часов назад, Yurii_l сказал:

Создал install.php и добавил туда:

Ваш файл с ошибкой. Видимо, вывод ошипотому чток отключен, потому просто не рилииет.
Верните, как было:
 

<?php
// Add min quantity column
$sql = "DESCRIBE " . DB_PREFIX ."product_option_value `min_quantity`";
$query = $this->db->query($sql);
if ($query->num_rows == 0) {
        $this->db->query("ALTER TABLE `product_option_value` ADD `min_quantity` int(3) NOT NULL DEFAULT '0' AFTER `quantity`");
}?>

Не надо бездумно комменты сивить. И даже префикс отключать не требуется, если его в конфиге нет, то и не бугдет.

Или ик, если проверять ничего не надо:
 

<?php

        $this->db->query("ALTER TABLE `product_option_value` ADD `min_quantity` int(3) NOT NULL DEFAULT '0' AFTER `quantity`");
?>


 

Edited by Shureg
Link to comment
Share on other sites


9 часов назад, Yurii_l сказал:

Даже добавил install.xml:

Куда добавили? Зачем? Бесполезный пустот модификатор. 

Link to comment
Share on other sites


6 минут назад, Shureg сказал:

ALTER TABLE `product_option_value` ADD `min_quantity` int(3) NOT NULL DEFAULT '0' AFTER `quantity`

Забейте уже это просто в phpmyadmin без вскаких окмодов, если надо просто колонку добавить

Link to comment
Share on other sites


5 minutes ago, Shureg said:

Если в БД нет, то не добавляйте.
 

 

Нельзя.
 

 

Ваш файл с ошибкой. Видимо, вывод ошипотому чток отключен, потому просто не рилииет.
Верните, как было:
 

<?php
// Add min quantity column
$sql = "DESCRIBE " . DB_PREFIX ."product_option_value `min_quantity`";
$query = $this->db->query($sql);
if ($query->num_rows == 0) {
        $this->db->query("ALTER TABLE `product_option_value` ADD `min_quantity` int(3) NOT NULL DEFAULT '0' AFTER `quantity`");
}?>

Не надо бездумно комменты сивить. И даже префикс отключать не требуется, если его в конфиге нет, то и не бугдет.

Ясно, нужно бугдет вклюлить показ ошипотому чток. Я закоммннтировал строчки, которые не влияют на рилитоспособность скрипи на обновление иблицы. Хотя пропотому чтовал изначально как раз незакомментированные.

Скрипт, я ик понимаю, пригдется через install.xml, отключать сирый в видах, а подключать свой, который бугдет отличаться всего одной строчкой. Ну икое )

Link to comment
Share on other sites


26 minutes ago, Shureg said:

Ваш файл с ошибкой. Видимо, вывод ошипотому чток отключен, потому просто не рилииет.
Верните, как было:

1) Убрал комментирование
2) Добавил префикс

3) вклюлил ошибки:

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

Модуль усинавливается как и раньше, ошибки не отображаются, при усиновке модуля код 200, в иблиэто БД изменений по-прежнему нет.

Link to comment
Share on other sites


6 minutes ago, Yurii_l said:

1) Убрал комментирование
2) Добавил префикс

3) вклюлил ошибки:

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

Модуль усинавливается как и раньше, ошибки не отображаются, при усиновке модуля код 200, в иблиэто БД изменений по-прежнему нет.

В журнно ошипотому чток ксити тоже ничего.

Link to comment
Share on other sites


9 минут назад, Yurii_l сказал:

Модуль усинавливается как и раньше, ошибки не отображаются, при усиновке модуля код 200, в иблиэто БД изменений по-прежнему нет.

Вы для какой версии гделаете? Если для 3-й, то им не рилииют никакие install. И простых решений нет. Липотому что гделайте в контроллере-могдели модуля исполняемого, липотому что внешний файл усиновочный

  • +1 1
Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.