Author Topic: Импорт настроек при конвертации базы  (Read 8121 times)

0 Members and 1 Guest are viewing this topic.

Offline Constantin2022

  • Newbie
  • *
  • Posts: 11
Здравствуйте! Есть проблема: при обновлении с 95.4 с базой в формате mmap до новой версии (и программы и базы), но файлы autoexec_*.ini перемещаются в корзину, а в базу не попадают.
Если после перезагрузки новой версии программы с обновленной базой положить туда файлы autoexec_*.ini, то они применяются и потом перемещаются в корзину.
Как правильно автоматизировать применение autoexec_*.ini в этом случае?
Спасибо!
 

Offline dartraiden

Ну так положить файлы рядом с 0.95.4, запустить её, она их втянет в базу. Затем обновляться.
 

Offline Constantin2022

  • Newbie
  • *
  • Posts: 11
Ну так положить файлы рядом с 0.95.4, запустить её, она их втянет в базу. Затем обновляться.

Механизм какой мыслится:
Есть старая Миранда со старыми базами в локальных профилях пользователей.
Централизованно скриптом распространяется (старая удаляется) папка Миранды в Program Files. В папке уже есть все необходимые плагины и эти файлы autoexec_*.ini
Новая версия Миранды запускается, преобразует локальную базу в новый формат и применяет эти INI файлы.

В предложенной вами схеме есть один неудобный момент - как отследить, что INI применились и можно приступать к распространению новой версии программы? На множестве пользователей, которые могут быть в отпуске (выключен компьютер, папка Миранды недоступна) в момент первого этапа.

Тогда уже более приемлем вариант не удалять autoexec_*.ini после применения.

Или есть какие-то более удобные механизмы?
 

Offline dartraiden

Как вариант
- поднять в локалке свой сервер с обновлениями Миранды
- всем раскатать PluginUpdater от 0.95.4 и autoexec_0.ini, который засадит в базу опцию "кастомный сервер обновлений" и урл этого сервера (в локальной сети)
- также раскатать те самые ваши autoexec_*.ini

Что произойдет:
- когда юзер в первый раз включит Миранду, она всосёт все инишки
- затем апдейтер ломанётся на ваш сервер за обновлениями и обновит Миранду
- Миранда перезапустится и сконвертирует базу

То есть, не руками обновлять бинарники, а доверить это апдейтеру.
« Last Edit: 30 06 2022, 14:48:50 by dartraiden »
 

Offline dartraiden

при обновлении с 95.4 с базой в формате mmap до новой версии (и программы и базы), но файлы autoexec_*.ini перемещаются в корзину, а в базу не попадают.
Не удаётся повторить.

Беру профиль, созданный в 0.95.4. Беру стабильную версию с сайта. Подкладываю к ней dbx_mmap, чтобы старый профиль прочитался. Кладу рядом autoexec_1.ini с содержимым

Code: [Select]
SETTINGS:

[CLC]
TestOption=b1

Запускаю, идёт вопрос про конвертацию, затем вопрос импортировать ли инишку. По итогу, в сконвертированной базе появляется TestOption => всё работает, как полагается.
 

Offline Constantin2022

  • Newbie
  • *
  • Posts: 11
Не удаётся повторить.

Беру профиль, созданный в 0.95.4. Беру стабильную версию с сайта. Подкладываю к ней dbx_mmap, чтобы старый профиль прочитался. Кладу рядом autoexec_1.ini с содержимым

Code: [Select]
SETTINGS:

[CLC]
TestOption=b1

Запускаю, идёт вопрос про конвертацию, затем вопрос импортировать ли инишку. По итогу, в сконвертированной базе появляется TestOption => всё работает, как полагается.

Запросы на применение появляются, но  вот этот параметр не применяется. Такая же ситуация со значками.
[JABBER_1]
HostNameAsResource=b1
 

Offline dartraiden

А вот эта не применяется. Интересное...
 

Offline dartraiden

Исправлено в версии в разработке. Попробуйте. Если починилось, портируем в стаблю.
 

Offline Constantin2022

  • Newbie
  • *
  • Posts: 11
Вроде сработало. Правда, сначала не распознавал старую базу. Но после подсовывания dev-версий mdbx, mmap дело пошло на лад.

Всё импортировалось, за исключением последних строчек в TipperItems:
Module1=s
Module2=sЩ?)A№@щ€:aAYCy“!9DyЉ:AI№‡:щЌ:№‰:щ†:№†:©`™a©cй_Й^iF9aiaЙaйI)bYbcyc‘JyIБEсG9‡:GщEЩFЙJ   IqK!J)H™H9K1Fс™!ЎFIGЃGщ‡:QLy€:№G©K‰L±IaHYJK9‰:СHбKLQS)O   PYQЃN   ^iM9^APщ‰:!Q1MЎMyPSaO±P™Oщd№eigЙgщЉ:©i9d©fNidйP™gyf‘Q‰SЩMЙQy‹:R9RБLщLСOqR©RбRYeINщg№N№‹:сNyWiT)VaV№U™VYйhСV   dQZщ‹:‰ZсUЎT
Module3=g!"q"б""±")""Q"Y"С"‰\n"!   "й   "I   "Щ\n") ""с"q   "Y"С"9\n"A"Ў "‘"№"Ў"с "Щ"Й"№ ")"y"Q"   \r"1\r"I"ьN™"Ѓ\r"ЎфFaяNiLPщKZGZ‰CZ"9"йCZ№IZ"©{)GP›`№FZ9EZСGP)CZQљ`iHZБ“`   EZ   y)wY"щEZй˜`йFZ™KZй“`iEZщ"iKZ   ")•`±”`б"№wй"9KZ9"i"Й"‘"a"‰"±"с"™yб–`ЩAZa”`щBZ9”`‰”`±™`9BZ™“`ЎLP№–`!"©AZЩDZ‘–`yAZ™HZБ˜`q“`!“`™"qчF‰"щ"ЙyБ"Щuб"""©xYwYz‰wЩxЎ"iy)}№}
Name0=ubirthday_age
Name1=ubirthday_date
Name2=ubirthday_next
Name3=uStatus
NextFuncId=d23
Setting0=sBirth
Setting1=sBirth
Setting2=sBirth
Setting3=sStatus
TransFuncId0=d9
TransFuncId1=d8
TransFuncId2=d12
TransFuncId3=d1
Trans_<prefix>Day|Month to days to next birthday=d12
Trans_<prefix>Day|Month|Year to age=d9
Trans_<prefix>Day|Month|Year to date=d8
Trans_<prefix>Day|Month|Year|Hours|Minutes|Seconds to time difference=d11
Trans_<prefix>Hours|Minutes to time=d14
Trans_<prefix>Hours|Minutes|Seconds to time=d10
Trans_BYTE timezone to time=d19
Trans_BYTE to Male/Female (ICQ)=d5
Trans_BYTE to Yes/No=d4
Trans_BYTE to language (ICQ)=d22
Trans_DWORD seconds to time difference=d18
Trans_DWORD timestamp to date (long)=d16
Trans_DWORD timestamp to date (short)=d15
Trans_DWORD timestamp to time=d2
Trans_DWORD timestamp to time (no seconds)=d13
Trans_DWORD timestamp to time difference=d3
Trans_DWORD to IP address=d7
Trans_WORD to country name=d6
Trans_WORD to name of a day (0..6, 0 is Sunday)=d20
Trans_WORD to name of a month (1..12, 1 is January)=d21
Trans_WORD to status description=d1
Trans_xStatus: empty xStatus name to default name=d17
Type0=b1
Type1=b1
Type2=b1
Type3=b1


Как я понимаю, в INI не обязательно включать все параметры, которые экспортировались из базы, а только изменяемые?
 

Offline dartraiden

Да, в инишке должны быть те параметры, которые вы хотите менять.
 

Offline Constantin2022

  • Newbie
  • *
  • Posts: 11
А как вы думаете, что случилось с TipperItems?

Когда ждать релиз? Или пользоваться тем, что есть?
 

Offline dartraiden

Каких конкретно строчек из той портянки?
Релиз будет тогда, когда появится @ghazan
 

Offline Constantin2022

  • Newbie
  • *
  • Posts: 11
Конкретно эти строчки и не попали (попали от DILabel0 до Module0). Подробного описания параметров нет, поэтому они просто экспортировались с настроенной машины.

А когда @ghazan появится?
 

Offline Constantin2022

  • Newbie
  • *
  • Posts: 11
Исправлено в версии в разработке. Попробуйте. Если починилось, портируем в стаблю.

Да, еще один момент. У нас используется другой значок для Jabber (не фонарик, а зеленая точка).
Настройки в виде INI применились, но при первом запуске всё также желтый фонарик рядом с активным пользователем, а вот при перезапуске - уже правильная зеленая точка.

Можно ли это как-то применить без перезагрузки Миранды?
 

Offline dartraiden

Конкретно эти строчки и не попали (попали от DILabel0 до Module0).
Приаттачьте тогда инишку целиком готовую к посту.

Quote
А когда @ghazan появится?
Миранда разрабытвается энтузиастами в свободное время, поэтому появится, когда будет время.

Quote
Да, еще один момент. У нас используется другой значок для Jabber (не фонарик, а зеленая точка).
И эту инишку тоже сюда давайте.