MySQL Python - ВЫБИРАЕТ работу, но не УДАЛЯЕТ?

Вот общий план относительно Скрученного. Я первоначально собирался занести это в блог, но тогда я думал: почему блог об этом, когда я мог добраться точки для него?

  1. Ожидают, пока кто-то не заботится.

    Прямо сейчас, ни у кого нет Python 3. Мы не собираемся тратить набор усилия, пока по крайней мере один фактический пользователь не приехал дальше и сказал, что "Мне нужна поддержка Python 3.0", и имеет серьезное основание для него кроме факта это 3,0 блестящие взгляда.

  2. Ожидают, пока наши зависимости не мигрировали.

    А большой системе нравится Скрученный, имеет много зависимостей. Для начала, наши включают:

    , Некоторые из этих проектов имеют их собственный массив зависимостей, таким образом, мы должны будем ожидать тех также.

  3. Ожидают, пока кто-то не заботится достаточно для помощи .

    существуют, милосердно, 5 человек, которые продолжают работать Скрученные - и я говорю "милосердно", потому что это считает меня, и я не фиксировал в месяцах. Мы имеем более чем 1 000 открытых билетов прямо сейчас, и было бы хорошо на самом деле зафиксировать некоторые из тех —, исправляют ошибки, добавляют опции, и обычно делают Скрученными лучший продукт самостоятельно —, прежде, чем провести время при получении его портировало к существенно новой версии языка.

    Это потенциально включает спонсоры забота достаточно для оплаты за нас, чтобы сделать это, но я надеюсь, что будет приток волонтеров, которые заботятся о приблизительно 3,0 поддержке и хотят помочь переместить сообщество вперед.

  4. Следуют совету Guido.

    Это означает , мы не изменим наш API несовместимо , и мы будем следовать переходные инструкции по разработке , тот Guido отправил в прошлом году. Это запускается с наличия модульных тестов и выполнения 2to3 инструмент преобразования по Скрученной кодовой базе.

  5. Сообщают об ошибках против, и патчи файла для, 2to3 инструмент .

    , Когда мы переходим к сути дела, где мы на самом деле используем его, я ожидаю, что будет много проблем с выполнением 2to3 в будущем. Работа его Скрученный прямо сейчас чрезвычайно занимает много времени и (в последний раз, я проверил, который был долгое время назад), не может проанализировать несколько файлов в Скрученном репозитории, таким образом, получающийся вывод не импортирует. Я думаю, что должно будет быть изрядное количество историй успеха из маленьких проектов и большого стука на инструменте, прежде чем это будет на самом деле работать на нас.

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

  6. Поддерживают 2.x совместимость в течение нескольких лет.

    Прямо сейчас, Скрученный python 2.3 поддержек к 2,5. В настоящее время мы работаем над 2,6 поддержкой (который мы должны будем, очевидно, закончить прежде 3.0!). Наш план, мы пересматриваем наши поддерживаемые версии Python на основе долгосрочных поддерживаемых версий [1 116] Ubuntu - выпуск 8.04, который включает Python 2.5, будет поддерживаться до 2013. Согласно совету Guido мы должны будем отбросить поддержку 2,5 для поддержки 3.0, но я надеюсь, что мы можем найти путь вокруг того (мы являемся довольно творческими со взломами совместимости версий).

    Так, мы планируем поддерживать Python 2.5 до, по крайней мере, 2013. Через два года Ubuntu выпустит другую долгосрочную поддерживаемую версию Ubuntu: если они все еще существуют и остаются по графику, который будет 10.04. Лично я предполагаю, что это будет поставляться с Python 2.x, возможно, python 2.8, как /usr/bin/python, потому что существует огромная сумма программного обеспечения Python, упакованного с распределением, и будет требоваться много времени для обновления всего этого. Так, пять лет от [1 120] тогда , в 2015, мы можем начать смотреть на отбрасывание 2.x поддержка.

    В течение этого периода, мы продолжим следовать совету Guido о миграции: выполнение 2to3 по нашему 2.x кодовая база и изменение 2.x кодовая база для хранения ее тестовой передачи в обеих версиях.

    результат этого - то, что Python 3.x не будет источник язык для Скрученного, пока много позже того, как моего 35-го дня рождения — это не будет целевая среда выполнения (и ряд инструкций и ограничений) для моего Python 2.x код. Я ожидаю писать программы в Python 2.x в течение следующих десяти лет или около этого.

Так, это - план. Я надеюсь, что это заканчивает тем, что выглядело смехотворно консервативным через год или так; то, что 3.x переход легок как круг, и все быстро обновляют. Другие вещи могли произойти, также: 2.x и 3.x ответвления могли сходиться, кто-то мог бы закончить тем, что писал 3to2, или другое время выполнения (PyPy приходит на ум), мог бы допускать выполнение 2.x и 3.x код в том же процессе непосредственно, делая наш процесс преобразования легче.

В настоящее время, однако, мы предполагаем, что много лет у нас будут люди с большими кодовыми базами, которые они поддерживают (или люди, пишущие новый код, кто хочет использовать другой библиотеки, которые еще не были перемещены), кто все еще хочет новые возможности и исправления ошибок в Скрученном. Довольно скоро я ожидаю, что у нас также будут новейшие пользователи, которые хотят использовать Скрученный на python 3. Я хотел бы предоставить всем тем людям с положительным опытом максимально долго.

9
задан Brian Tompsett - 汤莱恩 4 July 2015 в 12:55
поделиться

3 ответа

Я предполагаю, что вы используете механизм хранения, который поддерживает транзакции (например, InnoDB), но вы не вызываете db.commit () после DELETE. Эффект DELETE отменяется, если вы не фиксируете.

См. http://mysql-python.sourceforge.net/FAQ.html#my-data-disappeared-or-won-t-go -away :

Начиная с 1.2.0 MySQLdb отключает autocommit по умолчанию, как того требует стандарт DB-API (PEP-249). если ты используют таблицы InnoDB или другие тип транзакционной таблицы тип, вам нужно будет сделать connection.commit () перед закрытием соединения, иначе ни одно из ваших изменений не будет записано в базу данных.

См. также этот аналогичный вопрос SO: Ошибка обновления Python MySQLdb

12
ответ дан 4 December 2019 в 15:22
поделиться

Возможно, вы нарушаете ограничение внешнего ключа.

1
ответ дан 4 December 2019 в 15:22
поделиться

На ваш код выше, просто добавьте вызов self.db.commit () .

Эта функция совсем не раздражает:

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

0
ответ дан 4 December 2019 в 15:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: