Redmine - кроссплатформенное веб-приложение, написанное на Ruby on Rails, сочетающее в себе менеджер проектов, трекер, календарь, вики, форум и многое другое. Расширяем плагинами. Использует различные базы данных.

Проблема с русскими символами после установки

После установки Redmine так получилось, что все русские символы отображались знаками вопроса (?????????? ????????). В конфигурации указана кодировка UTF-8, значит проблема в базе данных MySQL. Исправляем….

  • Зайдите в MySQL
1
mysql -u root -p
  • Подключитесь к нужной базе и посмотрите кодировку:
1
2
 use database;
 show variables like "character_set_database";

Вы должны получить что-то такое:

1
2
3
4
5
 +------------------------+--------+
 | Variable_name          | Value  |
 +------------------------+--------+
 | character_set_database | latin1 |
 +------------------------+--------+

Если нам нужна другая, придётся перезалить базу. Выйдите:

1
 quit;
  • Создайте дамп нашей базы со всеми необходимыми данным:
1
mysqldump -u root -p database --allow-keywords --create-options --complete-insert --default-character-set=latin1 --add-drop-table > dump.sql

Отредактируйте файл dump.sql, заменив latin1 на utf8 (например). В mcedit для этого достаточно нажать F4 и в первой строке указать одну кодировку, во второй - нужную. И заменить всё (осторожно, если уже есть данные, похоронить не проблема)…

Залейте базу обратно:

1
mysql -u root -p database --default-character-set=utf8 < dump.sql

Проблема должна быть исчерпана, русские буквы корректно отображаться.

Некорректное отображение в базе знаний

Тут не обязательно лопатить всю базу. Достаточно сделать так в MySQL:

1
2
3
4
5
6
7
8
9
10
11
12
13
DROP TABLE IF EXISTS `kb_categories`;
 
 CREATE TABLE `kb_categories` (
    ->   `id` int(11) NOT NULL AUTO_INCREMENT,
    ->   `title` varchar(255) NOT NULL,
    ->   `description` text,
    ->   `created_at` datetime NOT NULL,
    ->   `updated_at` datetime NOT NULL,
    ->   `parent_id` int(11) DEFAULT NULL,
    ->   `lft` int(11) DEFAULT NULL,
    ->   `rgt` int(11) DEFAULT NULL,
    ->   PRIMARY KEY (`id`)
    -> ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

Это руссифицирует категории. А теперь дело за самими статьями….

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 DROP TABLE IF EXISTS `kb_articles`;
 
 CREATE TABLE `kb_articles` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `category_id` int(11) NOT NULL,
  `title` varchar(255) NOT NULL,
  `summary` text,
  `content` text,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  `author_id` int(11) NOT NULL DEFAULT '0',
  `comments_count` int(11) DEFAULT NULL,
  `project_id` int(11) DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

Учтите, что это уничтожит все записи в этой таблице. Поэтому сделайте заранее дамп!

Не отправляется почта через локальный sendmail

Прописал sendmail, но почта упорно не уходила. Изменил конфиг следующим образом:

1
2
3
4
5
 production:
   email_delivery:
     delivery_method: :async_sendmail
     async_sendmail_settings:
       arguments: -i

Учтите, что TABов быть не должно! Только пробелы!