Внимание! Форум временно закрыт. Все вопросы вы можете задать на странице MaxSite CMS в Github

Ошибка бд после обновления

В этом форуме вы можете задать вопрос по MaxSite CMS.
Аватар пользователя
Odesasvit
Сообщений: 5
Зарегистрирован: 22 сен 2014, 13:22

Re: Ошибка бд после обновления

Сообщение Odesasvit » 08 окт 2015, 20:33

Кстати, у меня была точно такая же проблема с подключением как описано выше. Но из-за того, что не хотелось разбираться, я сделал новую установку, а затем уже вместо новой подключил старую базу.
Но я грешу на то, что обновляя движек, я сначала просто залил новую сборку поверх старой. При этом инструкцию по обновлению не читал и каталог system не переименовывал. Видимо "собака" где-то там и зарыта.

shamrayonok
Сообщений: 22
Зарегистрирован: 11 май 2011, 10:51

Re: Ошибка бд после обновления

Сообщение shamrayonok » 13 окт 2015, 19:33

Мне помогло это
$db['default']['autoinit'] = FALSE;

В моём database.php здесь было True, в database.php-distr 0,92 - FALSE.
Поменял и все взлетело.

Frankie
Сообщений: 17
Зарегистрирован: 30 апр 2013, 23:15

Re: Ошибка бд после обновления

Сообщение Frankie » 14 окт 2015, 14:44

shamrayonok писал(а):Мне помогло это
$db['default']['autoinit'] = FALSE;

В моём database.php здесь было True, в database.php-distr 0,92 - FALSE.
Поменял и все взлетело.

Спасибо, попробуем.

Frankie
Сообщений: 17
Зарегистрирован: 30 апр 2013, 23:15

Re: Ошибка бд после обновления

Сообщение Frankie » 12 май 2016, 09:55

Позанимаюсь чутка некрологией и опять подниму свою же тему.

Снова попрошу меня сильно не пинать, потому, что я не программист, я всего лишь сеошник, поэтому бурно не реагируйте, если я что-то делаю неверно, а лучше подскажите как правильно.

После предыдущих неудачных попыток в октябре 2015(см. первый пост данной темы) обновиться, я бросил это дело.

Но вот вчера возникло у меня желание попробовать еще раз.
Итак, исходная версия так же осталась 0.863, но в этот раз обновляемся до 0.94

Сделал опять же все но инструкции из файла install-ru.txt, пункт "УНИВЕРСАЛЬНЫЙ СПОСОБ ОБНОВЛЕНИЯ".
В подпункте 5 Перенесите конфигурацию базы данных и сайта из «application-old» в новый «application»
/config/database.php (используйте новый database.php-distr)
/maxsite/mso_config.php (используйте новый mso_config.php-distr)
Все так и сделал, а именно
заменил старый database.php на новый, вписав в него все настройки из старого.
mso_config.php просто заменил на новый, без изменений настроек.

Вот перенос настроек БД самое интересное:
Я внес только логин/пароль от бд, оставив остальные настройки без изменений
Новый конфиг

Код: Выбрать все

$db['default']['dbdriver'] = 'mysqli';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = 'application/cache/db/';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;


В старом файле настроек, кодировка была 1251, в новой UTF8
Так же меня смутил пункт $db['default']['dbdriver'] различный тип БД, но я его не стал трогать.
Параметр $db['default']['autoinit'] я оставил в TRUE, т.к. FALSE вызывает ту самую ошибку, из-за которой я потерпел неудачу при предыдущей попытке обновиться.


Старый конфиг

Код: Выбрать все

$db['default']['dbdriver'] = 'mysql';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = 'application/cache/db/';
$db['default']['char_set'] = 'cp1251';
$db['default']['dbcollat'] = 'cp1251_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = FALSE;
$db['default']['stricton'] = FALSE;


В итоге мы имеем все записи и тексты в шаблоне в юникоде, а вот если меняем кодировку в новом конфиге на 1251, то получаем кириллические тексты, но половина текстов в этом случае просто не отображается, просто заголовок, без содержимого и даже в админке, при редактировании записей, тоже имеем пустое поле.

Я попробовал перекодировать сами таблицы БД, для этого воспользовался следующей командой:
ALTER TABLE `db_name`.`table_name` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

Теперь в phpmyadmin столбец "Сравнение" у каждой таблицы имеет значение "utf8_general_ci" ранее было "cp1251_general_ci"
Но проблему это не решило.

Изображение

Изображение

Изображение

Помогите решить проблему с кодировкой пожалста.

Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

Re: Ошибка бд после обновления

Сообщение MAX » 12 май 2016, 10:48

В phpMyAdmin тексты нормально отображаются?

Frankie
Сообщений: 17
Зарегистрирован: 30 апр 2013, 23:15

Re: Ошибка бд после обновления

Сообщение Frankie » 12 май 2016, 11:09

MAX писал(а):В phpMyAdmin тексты нормально отображаются?

Не догадался вчера посмотреть, сейчас посмотрел.
Нет, так же в юникоде
Изображение
Выходит то, что я делал с таблицами привело только к смене кодировки самой таблицы, но не ее содержимого...

А можете подсказать как само содержимое сконвертить?

Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

Re: Ошибка бд после обновления

Сообщение MAX » 12 май 2016, 11:23

1. Добиваетесь, чтобы тексты в phpMyAdmin нормально отображались. То есть ваш первоначальный вариант.
2. Делаете дамп в phphMyAdmin. Получаете обычные текстовые файлы.
3. Открываете их нормальным текстовым редактором, который позволяет выполнить конвертирование из win в utf8. То есть будет utf8-тексты.
4. Если в дампе прописана кодировка 1251, меняете на юникодовскую через поиск-замену.
5. В phpMyAdmin делаете новую базу с юникодовской кодировкой.
6. загоняете в неё переделанные дампы.
7. Подключаете к MaxSite CMS.

Frankie
Сообщений: 17
Зарегистрирован: 30 апр 2013, 23:15

Re: Ошибка бд после обновления

Сообщение Frankie » 12 май 2016, 12:14

MAX писал(а):1. Добиваетесь, чтобы тексты в phpMyAdmin нормально отображались. То есть ваш первоначальный вариант.
2. Делаете дамп в phphMyAdmin. Получаете обычные текстовые файлы.
3. Открываете их нормальным текстовым редактором, который позволяет выполнить конвертирование из win в utf8. То есть будет utf8-тексты.
4. Если в дампе прописана кодировка 1251, меняете на юникодовскую через поиск-замену.
5. В phpMyAdmin делаете новую базу с юникодовской кодировкой.
6. загоняете в неё переделанные дампы.
7. Подключаете к MaxSite CMS.

Сложно для меня, но попробую не убить бд :D спасибо


Вернуться в «MaxSite CMS»

Кто сейчас на форуме

Пользователь просматривает форум: Bing [Bot]

cron