Django Фильтрация предупреждений MySQL

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

django / db / backends / mysql / base.py: 86: Предупреждение: данные усекаются для столбца 'slug' в строке 1

Первое, что я Я начал гуглить после того, как исправил проблему. Чтобы исправить это, я настроил обе модели, чтобы их максимальная длина составляла 128 объявлений, а затем обновил таблицы SQL, чтобы соответствовать им. Но проблема осталась .. С некоторой уверенностью, что я на самом деле решил проблему, я решил, что с таким же успехом начну их отфильтровывать. Поэтому в верхней части моего сценария я разместил это.

# Get rid of the MySQLdb warnings
import warnings
import MySQLdb
with warnings.catch_warnings():
    warnings.filterwarnings("ignore", category=MySQLdb.Warning)

И я с радостью перенес это в производство. Угадайте, что - как вы уже догадались, проблема осталась. Ну что теперь. Я быстро теряю уверенность в том, что я действительно исправил проблему, но двойная проверка показывает, что все столбцы слагов имеют длину 128 символов. Кроме того, я добавил sluggify к ошибке, если он длиннее 128 и все еще ничего. Итак, 2 вопроса:

  1. Как я могу зафиксировать, какая операция Я быстро теряю уверенность в том, что я действительно исправил проблему, но двойная проверка показывает, что все столбцы слагов имеют длину 128 символов. Кроме того, я добавил sluggify к ошибке, если он длиннее 128 и все еще ничего. Итак, 2 вопроса:

    1. Как я могу зафиксировать, какая операция Я быстро теряю уверенность в том, что я действительно исправил проблему, но двойная проверка показывает, что все столбцы слагов имеют длину 128 символов. Кроме того, я добавил sluggify к ошибке, если он длиннее 128 и все еще ничего. Итак, 2 вопроса:

      1. Как я могу зафиксировать, какая операция помечает это. т.е. где по моему код поднимает флаг?

      2. Как я мог отфильтровать их? Мое исправление не работает? Это действительно предупреждение MySQLdb или предупреждение django.db.mysql.base?

      Спасибо и счастливого взлома Django!

      Для тех, у кого есть вопросы по структуре ..

      CREATE TABLE `people_employee` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `name` varchar(100) DEFAULT NULL,
        `email` varchar(75) DEFAULT NULL,
        `location_id` varchar(100) DEFAULT NULL,
        `jpeg` longtext,
        `first_name` varchar(100) DEFAULT NULL,
        `last_name` varchar(100) DEFAULT NULL,
        `maildomain` varchar(32) DEFAULT NULL,
        `mailserver` varchar(32) DEFAULT NULL,
        `mailfile` varchar(64) DEFAULT NULL,
        `contractor` tinyint(1) NOT NULL,
        `temporary` tinyint(1) NOT NULL,
        `formal_name` varchar(100) DEFAULT NULL,
        `nickname` varchar(32) DEFAULT NULL,
        `cell_phone` varchar(32) DEFAULT NULL,
        `office_phone` varchar(32) DEFAULT NULL,
        `other_phone` varchar(32) DEFAULT NULL,
        `fax` varchar(32) DEFAULT NULL,
        `assistant_id` int(11) DEFAULT NULL,
        `supervisor_id` int(11) DEFAULT NULL,
        `is_supervisor` tinyint(1) NOT NULL,
        `department_id` varchar(100) DEFAULT NULL,
        `division_id` varchar(100) DEFAULT NULL,
        `section_id` varchar(100) DEFAULT NULL,
        `job_classification_id` varchar(100) DEFAULT NULL,
        `functional_area_id` varchar(100) DEFAULT NULL,
        `position_id` varchar(100) DEFAULT NULL,
        `notes_url` varchar(200) DEFAULT NULL,
        `ldap_active` tinyint(1) NOT NULL,
        `notes_active` tinyint(1) NOT NULL,
        `created_at` datetime NOT NULL,
        `last_update` datetime NOT NULL,
        `is_active` tinyint(1) NOT NULL,
        `site_id` int(11) NOT NULL,
        `slug` varchar(128) DEFAULT NULL,
        PRIMARY KEY (`id`),
        UNIQUE KEY `slug` (`slug`),
        KEY `people_employee_location_id` (`location_id`),
        KEY `people_employee_assistant_id` (`assistant_id`),
        KEY `people_employee_supervisor_id` (`supervisor_id`),
        KEY `people_employee_department_id` (`department_id`),
        KEY `people_employee_division_id` (`division_id`),
        KEY `people_employee_section_id` (`section_id`),
        KEY `people_employee_job_classification_id` (`job_classification_id`),
        KEY `people_employee_functional_area_id` (`functional_area_id`),
        KEY `people_employee_position_id` (`position_id`),
        KEY `people_employee_site_id` (`site_id`)
      ) ENGINE=MyISAM AUTO_INCREMENT=1429 DEFAULT CHARSET=latin1;
      

      И соответствующие модели.py.

      slug = models.SlugField(max_length=128, editable=False, unique=True)
      

      Надеюсь, это поможет ..

8
задан Community 23 May 2017 в 12:33
поделиться