Каково Ваше любимое решение для руководящих миграций базы данных в django? [закрытый]

Использование PDO и MYSQLi является хорошей практикой для предотвращения инъекций SQL, но если вы действительно хотите работать с функциями и запросами MySQL, было бы лучше использовать

mysql_real_escape_string

$unsafe_variable = mysql_real_escape_string($_POST['user_input']);

Есть больше возможностей для предотвращения этого: например, идентификация - если ввод представляет собой строку, число, символ или массив, есть так много встроенных функций для обнаружения этого. Кроме того, было бы лучше использовать эти функции для проверки входных данных.

is_string

$unsafe_variable = (is_string($_POST['user_input']) ? $_POST['user_input'] : '');

is_numeric

$unsafe_variable = (is_numeric($_POST['user_input']) ? $_POST['user_input'] : '');

И гораздо лучше использовать эти функции для проверки входных данных с помощью mysql_real_escape_string.

26
задан Marcin 2 February 2012 в 16:42
поделиться

5 ответов

Я использовал Юг , но Миграционный взгляды, обещающие также.

22
ответ дан akaihola 28 November 2019 в 07:25
поделиться

Миграционный взгляды, хорошие и простые.

9
ответ дан mcella 28 November 2019 в 07:25
поделиться

Мы используем Django на работе, и мы использовали dmigrations. В то время как это имеет свои причуды, это было полезно до сих пор. Некоторые функции:

  • Это использует таблицу в базе данных для отслеживания, которых были применены миграции.
  • , поскольку это знает, которые были применены, можно мигрировать и отступить.
  • Это интегрируется с manage.py как команда.
  • отдельными сценариями миграции является Python, но если Ваша логика миграции является чистым SQL, , dmigrations облегчает, просто может SQL и выполнять его.

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

3
ответ дан Brian Clapper 28 November 2019 в 07:25
поделиться

Мне нравится django-эволюция :

профессионалы:

  • чистый дизайн
  • никакому SQL не было нужно
  • гибкий
  • тривиальный для установки
  • простой в использовании

недостатки:

  • миграции не фиксируются в кодовой базе
  • , риск существует случайно выполнения миграции дважды
2
ответ дан MiniQuark 28 November 2019 в 07:25
поделиться

Помимо Юга, dmigrations, django-эволюции, и Миграционный я думал, что добавлю simplemigrations как другой инструмент, я видел автоматизацию миграций Django.

я использовал три из них в прошлом, но делаю миграции вручную теперь. Я думаю о попытке на юг снова из-за последних добавленных опций.

1
ответ дан Van Gale 28 November 2019 в 07:25
поделиться
Другие вопросы по тегам:

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