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

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

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

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

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

Профиль
 
 
Отправлено: 13 Февраль 2012 10:19 P.M.   [ Игнорировать ]   [ # 18 ]
Member
Avatar
RankRankRank
Всего сообщений:  173
Зарегистрирован  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
Всего сообщений:  61
Зарегистрирован  2008-02-07

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

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

 Подпись 

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

Профиль
 
 
Отправлено: 18 Февраль 2012 09:15 P.M.   [ Игнорировать ]   [ # 20 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  861
Зарегистрирован  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
Всего сообщений:  152
Зарегистрирован  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
Всего сообщений:  152
Зарегистрирован  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
Всего сообщений:  61
Зарегистрирован  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
Всего сообщений:  152
Зарегистрирован  2008-01-21

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

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

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

 Подпись 

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

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