0 Пользователей и 1 Гость просматривают эту тему.
  • 17 Ответов
  • 1418 Просмотров
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Что-то не пойму почему, но у меня выходят ошибки при повторной инсталяции компонента - точнее инсталяции обновления.
Само обновление накатывается, а вот файл манифеста остается всегда тот что был установлен первым. С чем может быть связано?
« Последнее редактирование: 03.11.2017, 17:53:11 от platonische »
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Ошибка повторной установки
« Ответ #1 : 02.11.2017, 17:31:46 »
Добавлю что еще и получаю ошибки связанные с SQL. Т.е. если была первой установлена версия 1.0, а устанавливаю 1.2 то sql выполняется как для 1.0
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Ошибка повторной установки
« Ответ #2 : 02.11.2017, 17:54:40 »
содержимое файла манифеста и установки мы должны угадывать?
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Ошибка повторной установки
« Ответ #3 : 03.11.2017, 11:11:35 »
Код
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.0" method="upgrade">
    <name>com_paymentsbrf</name>
    <author>platonische</author>
    <authorEmail>***</authorEmail>
    <authorUrl>https://***.ru</authorUrl>
    <copyright></copyright>
    <license></license>
    <version>1.1.12</version>
    <description>COM_PAYMENTSBRF_DESC</description>
    <creationDate>02 November 2017</creationDate>

<!-- Запускается при установке/удалении/обновлении -->
<scriptfile>script.php</scriptfile>


<install>
        <sql>
            <file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file>
        </sql>
    </install>
<update>
<schemas>
<schemapath type="mysql">sql/updates/mysql</schemapath>
</schemas>
</update>
    <uninstall>
        <sql>
            <file driver="mysql" charset="utf8">sql/uninstall.mysql.utf8.sql</file>
        </sql>
    </uninstall>




    <files folder="site">
        <filename>index.html</filename>
        <filename>paymentsbrf.php</filename>
        <filename>controller.php</filename>
        <filename>router.php</filename>
        <folder>models</folder>
        <folder>views</folder>
        <folder>controllers</folder>
<folder>cron</folder>
        <folder>assets</folder>
        <folder>helpers</folder>
    </files>
   
    <languages folder="site">
        <language tag="en-GB">language/en-GB/en-GB.com_paymentsbrf.ini</language>
        <language tag="ru-RU">language/ru-RU/ru-RU.com_paymentsbrf.ini</language>
    </languages>
    <administration>
        <menu>COM_PAYMENTSBRF</menu>
       
        <files folder="admin">
            <filename>index.html</filename>
            <filename>paymentsbrf.php</filename>
            <filename>controller.php</filename>
            <filename>config.xml</filename>
            <filename>access.xml</filename>
            <folder>sql</folder>
            <folder>tables</folder>
            <folder>models</folder>
            <folder>views</folder>
            <folder>controllers</folder>
            <folder>helpers</folder>
        </files>
        <languages folder="admin">
            <language tag="en-GB">language/en-GB/en-GB.com_paymentsbrf.ini</language>
            <language tag="ru-RU">language/ru-RU/ru-RU.com_paymentsbrf.ini</language>
            <language tag="en-GB">language/en-GB/en-GB.com_paymentsbrf.sys.ini</language>
            <language tag="ru-RU">language/ru-RU/ru-RU.com_paymentsbrf.sys.ini</language>
        </languages>
    </administration>

</extension>

файл script.php по мануалу, но его для эксперимента убирал из манифеста и архива - результат тот же
« Последнее редактирование: 03.11.2017, 11:17:34 от platonische »
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Ошибка повторной установки
« Ответ #4 : 03.11.2017, 12:52:44 »
а что в <schemapath type="mysql">sql/updates/mysql</schemapath> и почему не в таком виде как установка или удаление?
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Ошибка повторной установки
« Ответ #5 : 03.11.2017, 13:19:31 »
а что в <schemapath type="mysql">sql/updates/mysql</schemapath> и почему не в таком виде как установка или удаление?
Потому, что так написано в доке и во многих примерах. Вот https://docs.joomla.org/Manifest_files
А в папке sql/updates/mysql на сегодня три файла 1.0.2.sql, 1.0.3.sql, 1.1.8.sql
их листинг
1.0.2.sql
Спойлер
[свернуть]

1.0.3.sql
Спойлер
[свернуть]

1.1.8.sql
Спойлер
[свернуть]

Именно эти обновления и вылазиют в ошибках.
Но по моему они вообще не должны исполняться когда версия выше. В данный момент стоит на 3 сайтах с версией 1.1.12 но на одном ошибка выполнения обновления из файла 1.0.2 на другом из файла 1.0.3
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Ошибка повторной установки
« Ответ #6 : 03.11.2017, 13:25:00 »
Так на первый взгляд всё правильно!
Теперь ещё пару наводящих вопросов:
1. Какие вы ошибки SQL получаете?
2. покажите файл sql/install.mysql.utf8.sql
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Ошибка повторной установки
« Ответ #7 : 03.11.2017, 13:28:53 »
install
Спойлер
[свернуть]

Вот например такая на одном из сайтов (соответствует инструкции в файле 1.0.3.sql)
Спойлер
[свернуть]
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Ошибка повторной установки
« Ответ #8 : 03.11.2017, 13:37:43 »
Так а это файлы установки обновлённого компонента?
покажите что у вас в запросах файлах установки текущей версии компонента и файл манифеста, то есть не  1.1.12, а 1.0.0!
А ошибка SQL возникает потому что вы пытаетесь создать запросом поле exec в таблице #__paymentsbrf_base, а оно у вас там уже есть!
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Ошибка повторной установки
« Ответ #9 : 03.11.2017, 14:09:59 »
Так а это файлы установки обновлённого компонента?
покажите что у вас в запросах файлах установки текущей версии компонента и файл манифеста, то есть не  1.1.12, а 1.0.0!
А ошибка SQL возникает потому что вы пытаетесь создать запросом поле exec в таблице #__paymentsbrf_base, а оно у вас там уже есть!
Вот тут то я и не понимаю что происходит.
Манифеста 1.0.0 уже нет и не знаю где его найти.
Подскажите логику.
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Ошибка повторной установки
« Ответ #10 : 03.11.2017, 14:10:36 »
Да файлы обновленного компонента я вам приводил
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Ошибка повторной установки
« Ответ #11 : 03.11.2017, 14:26:11 »
Вот тут то я и не понимаю что происходит.
Манифеста 1.0.0 уже нет и не знаю где его найти.
а тот файл что у вас в administrator/com_paymentsbrf/paymentsbrf.xml что записано?

Подскажите логику.
А логика скорее всего в том что вы вручную внесли изменения в таблицы, а теперь пытаетесь их ещё и внести через обновление, вот и получаете ошибку!
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Ошибка повторной установки
« Ответ #12 : 03.11.2017, 15:19:34 »
А логика скорее всего в том что вы вручную внесли изменения в таблицы, а теперь пытаетесь их ещё и внести через обновление, вот и получаете ошибку!
нет не так. Говорю на 3 сайтах стоит, а разработка ведется на одном.
По поводу манифеста на сайтах скажу следующее (последняя 1.1.16 установлена на всех) в одном стоит версия 1.1.16, на другом - 1.1.12 и 1.1.6 на третьем
На первом ошибок нет. на втором ошибка связана с 1.0.3.sql а на третьем ошибка связана с 1.0.2.sql
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Ошибка повторной установки
« Ответ #13 : 03.11.2017, 15:23:36 »
На первом ошибок нет. на втором ошибка связана с 1.0.3.sql а на третьем ошибка связана с 1.0.2.sql
обе ошибки потому что вы пытаетесь создать то что есть! Вы скорее всего где то напутали с версионностью, или где то вручную понаделали уже существующие запросы!
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Ошибка повторной установки
« Ответ #14 : 03.11.2017, 17:28:41 »
обе ошибки потому что вы пытаетесь создать то что есть! Вы скорее всего где то напутали с версионностью, или где то вручную понаделали уже существующие запросы!
Где именно?  Это врядли, а если и так то как исправить?
Да и к томуже если я устанавливаю начисто компонент с версии выше происходит тоже самое
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Ошибка повторной установки
« Ответ #15 : 03.11.2017, 17:29:22 »
обе ошибки потому что вы пытаетесь создать то что есть!
Это то как раз понятно что пытается сделать установка. Вопрос почему?
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Ошибка повторной установки
« Ответ #16 : 03.11.2017, 17:52:55 »
Нашел в таблице _schemas указание на установки так вот там стоит неправильная версия в тех сайтах где выходят ошибки.
Исправил там на текущую версию и сделал +1 к версии в архиве. Накатил - ошибок нет! Ура!
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: [РЕШЕНО] Ошибка повторной установки
« Ответ #17 : 28.11.2017, 13:26:44 »
Вот полная картина подобных ошибок. Это можно добавить и в HOWTO, а то там я этого не видел.

При разработке компонента версии очень быстро скачут вверх и при этом происходит ОБНОВЛЕНИЕ БАЗЫ. Как только одно из обновлений затрагивает базу, то мы создаем файл в парке sql/update/version.sql. Этот version привязан к версии (собственно она это и есть). И вот тут наступает момент Х. Если мы эти изменения скопировали в файл install.sql, то все чистые установки не должны содержать sql/update/version.sql. (либо не обновлять install.sql)

Если же мы ставим начисто с файлами в updates то происходит накат этих файлов после установки.

Логика наката файлов. В таблице #__schemes хранится информация о последнем накате updates для каждого компонента (как минимум всех, что не из коробки). По этому полю при обновлении компонента происходит подгрузка только конкретных updates и если update прошел, то значение поле меняется -  в следующий раз будут браться только updates большие по значению.

Скорректировать работу на разных этапах можно ручным выставлением значений в таблице #__schemes.

Получается, если компонент пишется для широкой массы, то скорее всего нужно держать ветку со всеми updates на сервере обновлений, а на текущую версию делать копию с удалением updates и созданием единого install.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[РЕШЕНО] Дублирование при создании

Автор platonische

Ответов: 7
Просмотров: 921
Последний ответ 12.02.2021, 11:24:26
от platonische
[РЕШЕНО] onChange в админке на field modal

Автор platonische

Ответов: 1
Просмотров: 377
Последний ответ 30.01.2021, 16:40:45
от platonische
Странная ошибка

Автор borro

Ответов: 6
Просмотров: 2205
Последний ответ 31.07.2020, 17:19:58
от NewUsers
[РЕШЕНО] Сохранение значений полей добавленных динамически элементу

Автор platonische

Ответов: 30
Просмотров: 2015
Последний ответ 10.11.2019, 15:42:33
от platonische
[РЕШЕНО] Присвоить значения динамическому полю SimpleXMLElement

Автор platonische

Ответов: 4
Просмотров: 752
Последний ответ 08.11.2019, 11:13:27
от platonische