Дорожка версии, автоматизируйте изменения схемы DB с django

Чтобы добавить к этому известному вопросу (хотя и слишком поздно): вы также можете сделать df.groupby('column_name').get_group('column_desired_value').reset_index(), чтобы создать новый фрейм данных с указанным столбцом, имеющим определенное значение. Например,

import pandas as pd
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
                   'B': 'one one two three two two one three'.split()})
print("Original dataframe:")
print(df)

b_is_two_dataframe = pd.DataFrame(df.groupby('B').get_group('two').reset_index()).drop('index', axis = 1) 
#NOTE: the final drop is to remove the extra index column returned by groupby object
print('Sub dataframe where B is two:')
print(b_is_two_dataframe)

Запустите это:

Original dataframe:
     A      B
0  foo    one
1  bar    one
2  foo    two
3  bar  three
4  foo    two
5  bar    two
6  foo    one
7  foo  three
Sub dataframe where B is two:
     A    B
0  foo  two
1  foo  two
2  bar  two
10
задан Community 23 May 2017 в 11:48
поделиться

6 ответов

Существует по крайней мере две сторонних утилиты для обработки миграций схемы DB, Юга и Django Evolution. Я не попробовал ни один, но я услышал некоторые хорошие вещи о Юге, хотя Evolution был вокруг немного дольше.

Кроме того, взгляд на SchemaEvolution на Wiki Django. Это - просто страница Wiki о миграции дб.

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

В прошлый раз я проверил (версия 0.97), syncdb сможет добавить таблицы для синхронизации схемы DB с models.py файлом, но это не может:

  • Переименуйте или добавьте столбец на заполненном DB. Необходимо сделать это вручную.
  • Повторно разложите на множители свою модель (как разделение таблица в два) и повторно заполните свой DB соответственно.

Это могло бы быть возможно, хотя записать сценарий Django для создания миграции путем проигрывания с двумя различными менеджерами, но это могло бы взять возрасты, если DB является большим.

2
ответ дан 3 December 2019 в 22:40
поделиться

Было заседание на изменениях схемы DB в недавнем DjangoCon; существует видео сессии (благодаря Google), который должен предоставить немного полезной информации в ряде этих утилит.

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

Я слышал партию пользы о Django Schema Evolution Branch, и это был opions фактических пользователей. Это работы mostely из поля и делают то, что это должно сделать.

0
ответ дан 3 December 2019 в 22:40
поделиться

И теперь существует также dmigrations. Из объявления:

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

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

(Мой полужирный)

0
ответ дан 3 December 2019 в 22:40
поделиться

U должен поиск Dmigrations, он функционирует немного отличающийся от django-eveoltions. Это показывает Вам все, что это делает, и для сложных вещей это просит у Вас Ваши вмешательства. Это должно быть большим.

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

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