Искать  
 
   
2 из 2
2
после апгрейда 1.6.1 на 2.3.1 вместо текста вопросительные знаки + обрезан длинный текст
Отправлено: 13 Февраль 2012 09:15 P.M.   [ Игнорировать ]   [ # 16 ]
Member
RankRankRank
Всего сообщений:  158
Зарегистрирован  2008-01-21

Хостинг реальный. Буду дальше мучить. У меня уже 3 недели сайт в оффлайне.

Профиль
 
 
Отправлено: 13 Февраль 2012 09:37 P.M.   [ Игнорировать ]   [ # 17 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  891
Зарегистрирован  2008-01-07
bestann - 13 Февраль 2012 09:15 P.M.

Хостинг реальный

Виртуальный хостинг

Профиль
 
 
Отправлено: 13 Февраль 2012 10:19 P.M.   [ Игнорировать ]   [ # 18 ]
Member
Avatar
RankRankRank
Всего сообщений:  224
Зарегистрирован  2010-11-20

Посмотрите сюда: http://eeclub.ru/forum/viewthread/1940/#11426
Вы были близки к истине, но логику условия не построили...

После первого условия нужно дополнительное, отвечающее вашим
критериям поиска в цикле, затем - все остальное:

foreach ($query->result() as $row)
{
    
if ($row->field_type == 'date' OR $row->field_type == 'rel')
    
{
        $Q[] 
"ALTER TABLE `exp_weblog_data` CHANGE `field_id_{$row->field_id}` `field_id_{$row->field_id}` int(10) NOT NULL DEFAULT 0";

        if (
$row->field_type == 'date')
        
{
            $Q[] 
"ALTER TABLE `exp_weblog_data` CHANGE `field_dt_{$row->field_id}` `field_dt_{$row->field_id}` varchar(8) NULL";
        
}
    }
    
elseif ($row->field_id == 2)
    
{
        $Q[] 
"ALTER TABLE `exp_weblog_data` CHANGE `field_id_2` `field_id_2` mediumtext NULL";
    
}
    
else
    
{
        $Q[] 
"ALTER TABLE `exp_weblog_data` CHANGE `field_id_{$row->field_id}` `field_id_{$row->field_id}` text NULL";
    
}

В условии можно также использовать любой другой уникальный
идентификатор поля, например - field_name

Профиль
 
 
Отправлено: 15 Февраль 2012 02:30 P.M.   [ Игнорировать ]   [ # 19 ]
Новичок
Rank
Всего сообщений:  64
Зарегистрирован  2008-02-07

Такая же проблема, плюс ко всему шаблоны тоже обрезал. Оставил по title, а все остальное обрезал.
У кого-нибудь была похожая проблема?

До обновления база была 900мб после стала 100мб ))

 Подпись 

неточка дамаск dreamline

Профиль
 
 
Отправлено: 18 Февраль 2012 09:15 P.M.   [ Игнорировать ]   [ # 20 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  891
Зарегистрирован  2008-01-07
jim_nyc - 15 Февраль 2012 02:30 P.M.

Такая же проблема, плюс ко всему шаблоны тоже обрезал. Оставил по title, а все остальное обрезал.
У кого-нибудь была похожая проблема?

До обновления база была 900мб после стала 100мб ))

При апгрейде движок конвертирует БД в utf8, желательно перед обновлением подготовить БД и не делать это на живом сайте, а создать отдельную базу... посмотрите в каких местах обрезает или появляются знаки вопроса, может там были символы типа © « » — и тд, желательно сделать бекап, простись по файлу автозаменой на 

© « » &mdashи тд 


залить бекап обратно и делать обновление

Профиль
 
 
Отправлено: 21 Февраль 2012 10:47 P.M.   [ Игнорировать ]   [ # 21 ]
Member
RankRankRank
Всего сообщений:  158
Зарегистрирован  2008-01-21

так вроде ПОЛУЧИЛОCЬ, не обрезалось (дошла сама, потом прочитала сообщение Afgan)! Обращаю внимание, что field_id_2 НЕ ОБРАБАТЫВАЕМ вовсе — оно и так уже у меня было mediumtext null.

// Update custom fields to allow null
        
$query $this->EE->db->query("SELECT field_id, field_type FROM exp_weblog_fields");

        if (
$query->num_rows() > 0)
        
{
            
foreach ($query->result() as $row)
            
{
                
if ($row->field_type == 'date' OR $row->field_type == 'rel')
                
{
                    $Q[] 
"ALTER TABLE `exp_weblog_data` CHANGE `field_id_{$row->field_id}` `field_id_{$row->field_id}` int(10) NOT NULL DEFAULT 0";

                    if (
$row->field_type == 'date')
                    
{
                        $Q[] 
"ALTER TABLE `exp_weblog_data` CHANGE `field_dt_{$row->field_id}` `field_dt_{$row->field_id}` varchar(8) NULL";
                        
                    
}
                }
                
elseif ($row->field_id != '2')
                
{
                    $Q[] 
"ALTER TABLE `exp_weblog_data` CHANGE `field_id_{$row->field_id}` `field_id_{$row->field_id}` text NULL";
                
}
            }
        } 

Подскажите пожалуйста, что в итоге в exp_channel_data? Есть скриншот? Они NULL?

Профиль
 
 
Отправлено: 21 Февраль 2012 10:51 P.M.   [ Игнорировать ]   [ # 22 ]
Member
RankRankRank
Всего сообщений:  158
Зарегистрирован  2008-01-21

Такая же проблема, плюс ко всему шаблоны тоже обрезал. Оставил по title, а все остальное обрезал.
У кого-нибудь была похожая проблема?

У меня тоже сначала шаблоны обрезались. Может быть слишком много keywords, неподдерживаемые теги. Посмотрите старые шаблоны и отметьте, после каких символов обрезаны все новые шаблоны. Проверьте правильность всех тегов в шаблонах. У меня была следующая причина: в заголовке страниц title я использовала в качестве стрелки >, после которого всё и обрезалось. Заменила, стало так:

<title>{exp:weblog:entries}{weblog} » {categories backspace="1"}{category_name}{/categories} » {title}{/exp:weblog:entries}{exp:weblog:category_heading weblog="{my_weblog}"}</title

После этого темплейты при апдейте не обрезались.

Профиль
 
 
Отправлено: 27 Февраль 2012 08:26 P.M.   [ Игнорировать ]   [ # 23 ]
Новичок
Rank
Всего сообщений:  64
Зарегистрирован  2008-02-07
bestann - 21 Февраль 2012 10:47 P.M.

так вроде ПОЛУЧИЛОЬ, не обрезалось!!! Обращаю внимание, что field_id_2 просто НЕ ОБРАБАТЫВАЕМ вовсе - оно и так уже у меня было mediumtext null.

// Update custom fields to allow null
        
$query $this->EE->db->query("SELECT field_id, field_type FROM exp_weblog_fields");

        if (
$query->num_rows() > 0)
        
{
            
foreach ($query->result() as $row)
            
{
                
if ($row->field_type == 'date' OR $row->field_type == 'rel')
                
{
                    $Q[] 
"ALTER TABLE `exp_weblog_data` CHANGE `field_id_{$row->field_id}` `field_id_{$row->field_id}` int(10) NOT NULL DEFAULT 0";

                    if (
$row->field_type == 'date')
                    
{
                        $Q[] 
"ALTER TABLE `exp_weblog_data` CHANGE `field_dt_{$row->field_id}` `field_dt_{$row->field_id}` varchar(8) NULL";
                        
                    
}
                }
                
elseif ($row->field_id != '2')
                
{
                    $Q[] 
"ALTER TABLE `exp_weblog_data` CHANGE `field_id_{$row->field_id}` `field_id_{$row->field_id}` text NULL";
                
}
            }
        } 

А если необходимо чтобы несколько полей не обрабатывалось. У меня их получилось 3. (id2, id3, id4) тогда как?

 Подпись 

неточка дамаск dreamline

Профиль
 
 
Отправлено: 06 Март 2012 05:49 P.M.   [ Игнорировать ]   [ # 24 ]
Member
RankRankRank
Всего сообщений:  158
Зарегистрирован  2008-01-21

Мне кажется, что надо как-то логическое И делать.

Профиль
 
 
Отправлено: 09 Март 2012 03:16 P.M.   [ Игнорировать ]   [ # 25 ]
Новичок
Rank
Всего сообщений:  64
Зарегистрирован  2008-02-07

bestann, Afgan и budulay большое спасибо. Благодаря вашей помощи вчера успешно обновился. С шаблонами все впорядке и данные не потерял.

 Подпись 

неточка дамаск dreamline

Профиль
 
 
Отправлено: 26 Сентябрь 2013 09:51 A.M.   [ Игнорировать ]   [ # 26 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  1423
Зарегистрирован  2007-12-27

как ни странно, но проблема до сих пор актуальна. Как сделать, если полей несколько?

 Подпись 

ExpressionEngine - SEO-ориентированный движок

Профиль
 
 
Отправлено: 05 Ноябрь 2013 08:15 P.M.   [ Игнорировать ]   [ # 27 ]
Новичок
Rank
Всего сообщений:  2
Зарегистрирован  2013-11-05
bestann - 23 Январь 2012 09:02 P.M.

Но в очень длинных страницах текст обрезался! Я длину полей устанавливала в базе данных когда-то, всё спокойно умещалось. Сейчас если текст добавить, то тоже вместится.

Осталась какая-то хрень в комментариях, если следующая буква —СОГЛАСНАЯ. Если гласная, то просто троеточие пишется, как и положено. Причем если открыть полный текст комментария, с буквами проблем нет.

Здравствуйте! Удалось ли Вам побороть данный баг?

С уважением, Алексей.

Профиль
 
 
Отправлено: 25 Ноябрь 2013 02:55 A.M.   [ Игнорировать ]   [ # 28 ]
Администратор
Avatar
RankRank
Всего сообщений:  92
Зарегистрирован  2012-04-13
Alrazj - 05 Ноябрь 2013 08:15 P.M.

Здравствуйте! Удалось ли Вам побороть данный баг?

С уважением, Алексей.

1. Поднять рядом базу
2. Залить в неё полное зеркало текущей
3. Поднять версию ЕЕ в старой базе
4. Поправить параметры колонок в таблицах (по необходимости)
5. Использовать скрипт update_base_charset_recover.php для переноса данных из новой базы в старую, в соответствующие колонки.

Внимание: скрипт написан на коленке под новостной сайт с большим кол-вом записей (4,000+) под utf8.
Перед использованием скрипта — внимательно изучите его, внесите свои изменения. Всегда держите под рукой актуальную версию базы, для отката при нежелательном результате.

О проблемах при переносе данным способом, допиленных версиях скрипта не забывайте отписать.

Да пребудет с Вами Сила.

Приложения с файлами
update_base_charset_recover.php.zip  (Размер файла: 3KB - Загрузок: 159)
 Подпись 

[ EElover / FDCore ]

Профиль
 
 
Отправлено: 26 Ноябрь 2013 08:59 A.M.   [ Игнорировать ]   [ # 29 ]
Новичок
Rank
Всего сообщений:  2
Зарегистрирован  2013-11-05
L Des - 25 Ноябрь 2013 02:55 A.M.

1. Поднять рядом базу
2. Залить в неё полное зеркало текущей
3. Поднять версию ЕЕ в старой базе
4. Поправить параметры колонок в таблицах (по необходимости)
5. Использовать скрипт update_base_charset_recover.php для переноса данных из новой базы в старую, в соответствующие колонки.

Внимание: скрипт написан на коленке под новостной сайт с большим кол-вом записей (4,000+) под utf8.
Перед использованием скрипта — внимательно изучите его, внесите свои изменения. Всегда держите под рукой актуальную версию базы, для отката при нежелательном результате.

О проблемах при переносе данным способом, допиленных версиях скрипта не забывайте отписать.

Да пребудет с Вами Сила.

Вот спасибо! Уже и не надеялся, что кто-нибудь поможет)

Профиль
 
 
   
2 из 2
2