[Модуль] PostOffice Tracker (app_postoffice)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Модуль отслеживания посылок

Сообщение sergejey » Вт ноя 19, 2013 12:02 pm

LutsenkoDenis писал(а):ага, ну ок.
  • 1. Как задать составной первичный ключ? Или ключ не инкрементарный? И т.д. Судя по коду никак. Или я не прав?

    Код: Выделить всё

    // //new table
    if (strpos($definition, "auto_increment"))
    {
       $definition .= ", PRIMARY KEY(" . $field . ")";
       //$definition.=", KEY(".$field.")";
    } 
Всё верно, состоавной первичный ключ сделать таким образом не получится. Индексы можно добавлять таким образом (пример из pvalues):

Код: Выделить всё

 pvalues: INDEX (PROPERTY_ID)
 pvalues: INDEX (OBJECT_ID)
LutsenkoDenis писал(а):2. Структура данных как правило описывается отдельно от кода. Чтоб не нужно было бегать по коду и выискивать структуру а посмотреть в модели данных и увидеть модель всего прложения стразу. Структура(модель данных программы) поддерживается и обновляется путём создания модифицирующих скриптов.
Возможно и так. Данная реализация удобней как раз тем, что для поддержания актуальной структуры данных достаточно внести изменения в код конкретного модуля. Т.е. модуль сам заботится о том, чтобы для него всегда была в базе нужная структура данных. Децентрализация структуры и отсутсвие необходимости upgrade-скриптов это очень удобно. Не буду спорить о правильности, просто сужу по своему опыту в других проектах.
LutsenkoDenis писал(а): 3. Что должно быть тут:

Код: Выделить всё

$fileName = DIR_MODULES . $this->name . "/initial.sql"; 
initial.sql в целом атавизм, который крайне редко используется, но суть его в следующем -- sql-сценарии в этом файле запускаются в процессе установки/переустановки модуля, при этом система пытается этот файл изменить и закомментировать выполненные команды, чтобы они не исполнялись второй раз (при переустановке). Для корректной работы последней части необходимо, чтобы в linux-версии стояли права записи в этот файл. Но, повторюсь, я этим механизмом ни в одном из существующих модулей не пользовался.
LutsenkoDenis писал(а): 4. Зачем нужен LogFile? Или DebMes мало?

Код: Выделить всё

$data = LoadFile($fileName); 
[/list]
Э... не очень понял о каком LogFile идёт речь? Нет такой функции... а LoadFile это просто загрузка файла.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
LutsenkoDenis
Сообщения: 521
Зарегистрирован: Вс апр 07, 2013 9:30 pm
Откуда: Moscow
Благодарил (а): 2 раза
Поблагодарили: 58 раз
Контактная информация:

Re: Модуль отслеживания посылок

Сообщение LutsenkoDenis » Вт ноя 19, 2013 12:47 pm

Про LogFile... да действительно фигню написал, прочитал LogFile вместо LoadFile :)

Индексы в данном случае не нужны. Но в вообще может быть не по одному индексу на таблицу и индекс может быть тоже составной.

Про правильность структуры я как раз по этой же самой причине и не писал. :)
Т.к. может быть по разному реализовано.
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
DiArt
Сообщения: 210
Зарегистрирован: Пт апр 12, 2013 2:27 pm
Откуда: Уфа
Благодарил (а): 28 раз
Поблагодарили: 16 раз

Re: Модуль отслеживания посылок

Сообщение DiArt » Сб ноя 30, 2013 12:47 pm

Сегодня решил обновить с гитхаба. получилитакую картинку. что поправить?
Вложения
снимок1.png
снимок1.png (182.49 КБ) 9557 просмотров
Система на Неттоп 3Q Nettop Qoo!
(Intel Celeron J1800, 2x2410 МГц, 4096 Мб, HDD 1000 Гб, HDMI, VGA , Wi-Fi, Ethernet, Ubuntu 14.04.2)
Вторая система на Raspberry Pi 3.
D-Link DCS-930L/Broadlink RM2-Pro/BroadLink SP3 CC/Ginzzu HS-K07W
Я в CONNECT
LutsenkoDenis
Сообщения: 521
Зарегистрирован: Вс апр 07, 2013 9:30 pm
Откуда: Moscow
Благодарил (а): 2 раза
Поблагодарили: 58 раз
Контактная информация:

Re: Модуль отслеживания посылок

Сообщение LutsenkoDenis » Вс дек 01, 2013 12:01 am

можно либо забить на это сообщение,
либо переоздать все таблицы относящиеся к данному приложению.
Сообщение о том, что была неудачная попытка удалить таблицу POST_TRACK т.к. в таблице есть номера треков и по ним имеется информация в таблице POST_TRACKINFO.
На днях удалю пересоздание таблиц из приложения.
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
DiArt
Сообщения: 210
Зарегистрирован: Пт апр 12, 2013 2:27 pm
Откуда: Уфа
Благодарил (а): 28 раз
Поблагодарили: 16 раз

Re: Модуль отслеживания посылок

Сообщение DiArt » Вс дек 01, 2013 10:37 am

А пересоздавать как? Вручную чистить через phpmaadmin? Если так то какие ключи и где находятся
Система на Неттоп 3Q Nettop Qoo!
(Intel Celeron J1800, 2x2410 МГц, 4096 Мб, HDD 1000 Гб, HDMI, VGA , Wi-Fi, Ethernet, Ubuntu 14.04.2)
Вторая система на Raspberry Pi 3.
D-Link DCS-930L/Broadlink RM2-Pro/BroadLink SP3 CC/Ginzzu HS-K07W
Я в CONNECT
dmitriy77
Сообщения: 26
Зарегистрирован: Вт ноя 26, 2013 10:34 am
Благодарил (а): 0
Поблагодарили: 0

Re: Модуль отслеживания посылок

Сообщение dmitriy77 » Ср дек 18, 2013 6:32 am

Аналогичная ошибка, удалось что нибудь сделать? Только добавил приложение, и сразу она выскакивает
Ubuntu 12.04.3 LTS, MajorDoMo 0.5.0b
LutsenkoDenis
Сообщения: 521
Зарегистрирован: Вс апр 07, 2013 9:30 pm
Откуда: Moscow
Благодарил (а): 2 раза
Поблагодарили: 58 раз
Контактная информация:

Re: Модуль отслеживания посылок

Сообщение LutsenkoDenis » Ср дек 18, 2013 3:36 pm

Сори за долгое отсутствие :(
переливал систему.

код по очистке данных таблиц с сохранением данных во временный таблицах.

Код: Выделить всё

create table TMP_POST_PROXY as select * from POST_PROXY;
create table TMP_POST_MAIL as select * from POST_MAIL;
create table TMP_POST_TRACK as select * from POST_TRACK;
create table TMP_POST_TRACKINFO as select * from POST_TRACKINFO;

drop table if exists POST_PROXY;
drop table if exists POST_MAIL;
drop table if exists POST_TRACKINFO;
drop table if exists POST_TRACK;


create table POST_PROXY(
                  FLAG_PROXY           VARCHAR(1) not null default 'N',
                  PROXY_HOST           VARCHAR(64),
                  PROXY_PORT           VARCHAR(4),
                  PROXY_USER           VARCHAR(64),
                  PROXY_PASSWD         VARCHAR(64),
                  LM_DATE              DATETIME not null,
                  primary key (FLAG_PROXY)
                );

insert into POST_PROXY(FLAG_PROXY, PROXY_HOST, PROXY_PORT, PROXY_USER, PROXY_PASSWD, LM_DATE)
select * from TMP_POST_PROXY;

create table POST_MAIL
                  (
                     FLAG_SEND            VARCHAR(1) not null default 'N',
                     LM_DATE              DATETIME not null,
                     NOTIFY_EMAIL         VARCHAR(64),
                     NOTIFY_SUBJ          VARCHAR(255),
                     primary key (FLAG_SEND)
                  );

insert into POST_MAIL(FLAG_SEND, LM_DATE, NOTIFY_EMAIL, NOTIFY_SUBJ)
select * from POST_MAIL;


create table POST_TRACK
                  (
                     TRACK_ID             VARCHAR(14) not null,
                     TRACK_NAME           VARCHAR(64) not null,
                     FLAG_CHECK           VARCHAR(1) not null default 'Y',
                     TRACK_DATE           DATETIME not null,
                     LM_DATE              DATETIME not null,
                     primary key (TRACK_ID)
                  );

insert into POST_TRACK(TRACK_ID, TRACK_NAME, FLAG_CHECK, TRACK_DATE, LM_DATE)
select * from TMP_POST_TRACK;


create table POST_TRACKINFO
                  (
                     TRACK_ID             VARCHAR(14) not null,
                     OPER_DATE            DATETIME not null,
                     OPER_TYPE            INT(10) not null,
                     OPER_NAME            VARCHAR(64) not null,
                     ATTRIB_ID            INT(10),
                     ATTRIB_NAME          VARCHAR(64),
                     OPER_POSTCODE        INT(10),
                     OPER_POSTPLACE       VARCHAR(64) not null,
                     ITEM_WEIGHT          DECIMAL(10,6),
                     DECLARED_VALUE       DECIMAL(10,6),
                     DELIVERY_PRICE       DECIMAL(10,6),
                     DESTINATION_POSTCODE INT(10),
                     DELIVERY_ADDRESS     VARCHAR(255),
                     LM_DATE              DATETIME not null,
                     primary key (TRACK_ID, OPER_DATE)
                  );

insert into POST_TRACKINFO(TRACK_ID, OPER_DATE, OPER_TYPE, OPER_NAME, ATTRIB_ID, ATTRIB_NAME, OPER_POSTCODE, OPER_POSTPLACE, ITEM_WEIGHT, DECLARED_VALUE, DELIVERY_PRICE, DESTINATION_POSTCODE, DELIVERY_ADDRESS, LM_DATE)
select * from TMP_POST_TRACKINFO;
 
остальное постараюсь сделать в ближайшее время.
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Модуль отслеживания посылок

Сообщение Amarok » Чт дек 19, 2013 5:19 am

LutsenkoDenis писал(а):код по очистке данных таблиц с сохранением данных во временный таблицах.
А что с ним делать?
LutsenkoDenis писал(а):остальное постараюсь сделать в ближайшее время.
Сортировка заработает? УРА! :)
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
LutsenkoDenis
Сообщения: 521
Зарегистрирован: Вс апр 07, 2013 9:30 pm
Откуда: Moscow
Благодарил (а): 2 раза
Поблагодарили: 58 раз
Контактная информация:

Re: Модуль отслеживания посылок

Сообщение LutsenkoDenis » Чт дек 19, 2013 8:23 am

Новый релиз будет сегодня-завтра, ну самый край в выходные.
Проверить работоспособность не получается, т.к. не могу никак настроить удалённую отладку(xdebug) ;-(
А выкладывать релиз не проверив как-то не очень хочется.
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
LutsenkoDenis
Сообщения: 521
Зарегистрирован: Вс апр 07, 2013 9:30 pm
Откуда: Moscow
Благодарил (а): 2 раза
Поблагодарили: 58 раз
Контактная информация:

Re: Модуль отслеживания посылок

Сообщение LutsenkoDenis » Сб дек 21, 2013 9:20 pm

________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
Ответить