forum.bitel.ru http://forum.bitel.ru/ |
|
upgrade 6.0 to 6.2 (CRM:CLOSED) http://forum.bitel.ru/viewtopic.php?f=22&t=11798 |
Страница 1 из 1 |
Автор: | ok-2004 [ 19 июл 2016, 18:21 ] |
Заголовок сообщения: | upgrade 6.0 to 6.2 |
Доброе время суток! Решил тут попробовать сабж. Встретил одну непонятку... моя база в cp1251. В "Инструкции по обновлению с 3.5-6.1 до 6.2" читаем: "... Там теперь characterEncoding=UTF-8 вместо cp1251. Но надо указать cp1251, если в вашей базе данных такая кодировка ...Если БД у вас в cp1251, то connectionCollation нужно указать соответствующий правильный (или удалить)" в update_6.2.zip в patch.sql есть статемент: Код: CREATE TABLE `contract_payment_deleted` ..... comment` varchar(200) COLLATE utf8_unicode_ci ..... Как-то странно для cp1251 иметь такую collate , не ? |
Автор: | barguzin2 [ 19 июл 2016, 18:32 ] |
Заголовок сообщения: | Re: upgrade 6.0 to 6.2 |
Не, просто крайне рекомендуется перевести базу в UTF-8. Ну и не зря же написано "... Там теперь characterEncoding=UTF-8 вместо cp1251" |
Автор: | ok-2004 [ 19 июл 2016, 20:08 ] |
Заголовок сообщения: | Re: upgrade 6.0 to 6.2 |
"крайне рекомендуется" не тоджественно "обязательно". Если разработчики оставили свободу выбора , то ей следует придерживаться до конца. тем более если в db.opt уже стоит Код: default-character-set=utf8 default-collation=utf8_unicode_ci то зачем дублировать это в patch.sql ? Более того : в этом файле туча статеметнов "create table" и только в одном месте указывается явно collation Зачем ?? у меня как раз на том месте апргрейд и сбойнул.... P.S. прелесть от базы в utf8 тоже весьма сомнительна, кроме гемороя при конвертации с помощью alter table. ( Кроме туманных переспектив охватить рынок ACP по всему миру.) Хотя если уж на то и пошло - то сразу надо было рекомендовать utf8mb4, чего мелочиться. |
Автор: | skyb [ 19 июл 2016, 21:01 ] |
Заголовок сообщения: | Re: upgrade 6.0 to 6.2 |
ох, был холивар про кодировки, если он, то лучше туда =) |
Автор: | ok-2004 [ 20 июл 2016, 01:24 ] |
Заголовок сообщения: | Re: upgrade 6.0 to 6.2 |
ok! Не надо никакого холивара! Кто спорит ? utf8 так utf8... Тем более конвертация проще простого : Код: alter table CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci + alter database bgbilling DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE = utf8_unicode_ci Но вся изюмина в том что после ТАКОЙ конвертации структура полей конвертнутой базы НЕ СООТВЕТСТВУЕТ структуре полей базы в dump.sql! Потому, что все типы TEXT и VARCHAR перетекли в MEDIUMTEXT со всеми вытекающими последствиями: отсутствие DEFAULT vlaues и необходимость задания длины индекса. И как это скажется при следующих обновлениях - никому не известно. Корректнее было бы к текстовым полям таблиц делать: Код: ALTER TABLE MODIFY text_column CHARACTER SET utf8 + ALTER TABLE DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci. Тогда типы полей сохраняются но , количество символов в поле уменьшается в 3 раза ( в худшем случае , во всяком случае mysql при конвертации всегда резервирует 3 , хотя cp1251-символ в представлении utf8 продолжает храниться в одном байте) В итоге : конвертнуть базу из cp1251 в utf8 полноценно не получится. А раз так - тогда зачем конвертить ?. Пусть остаётся в cp1251... Но patch.sql в upgrade_6.x.zip рушит эту возможность явным заданием во вновь создаваемых таблицах типа сортировки unicode_ci, которая не может быть в cp1251. |
Автор: | barguzin2 [ 20 июл 2016, 08:25 ] |
Заголовок сообщения: | Re: upgrade 6.0 to 6.2 |
Менять кодировку или нет - дело, конечно, сугубо индивидуальное. Отвечу просто откуда ноги растут: с 6.1 UTF-8 идёт кодировкой по умолчанию и при разворачивании системы с нуля будет именно она. При снятии дампа с таблиц, имеющих COLLATE utf8_unicode_ci - этот самый COLLATE подставляется АВТОМАТИЧЕСКИ! Вот так он и попал в patch.sql как есть. И еще неизвестно куда и когда попадёт и при каких обновлениях можно поймать грабли, если оставить cp1251. |
Автор: | stark [ 22 июл 2016, 19:54 ] |
Заголовок сообщения: | Re: upgrade 6.0 to 6.2 |
Мы не заставляем конвертировать в utf8. Как раз для старых клиентов при обновлении можно не конвертировать. Для тех кто ставит с нуля - utf8. В patch.sql ошибка - исправим, недавно добавили . |
Автор: | stark [ 25 июл 2016, 15:09 ] |
Заголовок сообщения: | Re: upgrade 6.0 to 6.2 (CRM) |
исправили. |
Автор: | dimOn [ 20 ноя 2017, 20:06 ] |
Заголовок сообщения: | Re: upgrade 6.0 to 6.2 |
ok-2004 писал(а): Хотя если уж на то и пошло - то сразу надо было рекомендовать utf8mb4, чего мелочиться. Вы были правы. На самом деле кодировка единственно правильная для mysql это utf8mb4, с этого времени она рекомендуется, доки и скрипты поправим. |
Автор: | ok-2004 [ 20 ноя 2017, 20:30 ] |
Заголовок сообщения: | Re: upgrade 6.0 to 6.2 (CRM) |
Код: с этого времени она рекомендуется, доки и скрипты поправим. Хм, правильно ли я понял что Вы решили перейти на эту кодировку начиная с BGB 7.2 ? ЗЫ: Будте готовы к возможным сокращениям длины PRIMARY KEY в "contract_parameter_type_multilist_item" и UNIQUE KEY в "address_house" |
Автор: | dimOn [ 20 ноя 2017, 21:05 ] |
Заголовок сообщения: | Re: upgrade 6.0 to 6.2 (CRM) |
Ну вообще 7.1 думали, а что, это критичные изменения? В самом биллинге особо ничего не меняется. Только дамп создания и дефолтный data.properties и вроде всё. Работать будет и с 1251 кому захочется. Про сокращения длины подробнее поясните. |
Автор: | stark [ 21 ноя 2017, 13:02 ] |
Заголовок сообщения: | Re: upgrade 6.0 to 6.2 (CRM) |
Нет, 7.1 скорее всего не будем трогать. |
Автор: | dimOn [ 21 ноя 2017, 13:08 ] |
Заголовок сообщения: | Re: upgrade 6.0 to 6.2 (CRM) |
ой |
Автор: | Phricker [ 21 ноя 2017, 13:13 ] |
Заголовок сообщения: | Re: upgrade 6.0 to 6.2 (CRM) |
увы |
Автор: | barguzin2 [ 16 апр 2019, 16:15 ] |
Заголовок сообщения: | Re: upgrade 6.0 to 6.2 |
stark писал(а): Мы не заставляем конвертировать в utf8. Как раз для старых клиентов при обновлении можно не конвертировать. Для тех кто ставит с нуля - utf8. В patch.sql ошибка - исправим, недавно добавили . stark писал(а): исправили. update_7.1.zip patch.sql Цитата: CREATE TABLE `contract_payment_deleted` ( `id` int(11) NOT NULL DEFAULT '0', `dt` date NOT NULL DEFAULT '0000-00-00', `cid` int(10) unsigned NOT NULL DEFAULT '0', `pt` int(10) unsigned NOT NULL DEFAULT '0', `uid` int(11) NOT NULL DEFAULT '0', `summa` decimal(10,2) NOT NULL, `comment` varchar(200) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', `lm` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `time_change` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`), KEY `pt_dt` (`pt`,`dt`), KEY `dt_cid` (`dt`,`cid`), KEY `uid` (`uid`), KEY `cid_dt` (`cid`,`dt`) ); Обновляю 6.2 на 7.1, база в кодировке 1251. Хотя таблица уже есть и поле с такой же кодировкой. кто-то ранее на 6.2 уже обновлял.... |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |