Поддерживает ли какая-либо база данных контроль версий в интерфейсе командной строки? - PullRequest
1 голос
/ 10 марта 2011

Поддерживает ли какая-либо база данных контроль версий в интерфейсе командной строки?

Так, например, я в командной строке mysql>.Я собираюсь добавить столбец в таблицу.Я набираю ALTER TABLE X ADD COLUMN Y bigint; , а затем база данных запрашивает у меня: "ОК. Проверьте эти изменения с помощью git?" Я отвечаю "да", и выводится ревизияномер для схемы.

(mysqldump не требуется для получения схемы, удаления данных и регистрации в командной строке bash.)

В другое время я решил проверить все свои данные какЧто ж.Поэтому я набираю что-то вроде CHECKIN SNAPSHOT TABLE X

Мне кажется, что это подход здравого смысла, но кто-нибудь изменил базу данных для поддержки такого поведения?

Спасибо

Ответы [ 2 ]

1 голос
/ 11 марта 2011

Я думаю, что вы ищете "миграции". Обычно это делается на уровне кода, а не на уровне базы данных. Rails поддерживает миграции , Django поддерживает Юг , я уверен, что есть и другие.

Эти миграции представляют собой просто файлы кода (на выбранном языке программирования или сценарии sql), которые можно зарегистрировать.

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

Вообще говоря, вы не захотите управлять данными контроля версий, но есть исключения, когда некоторые данные являются частью логики, но вы, как правило, хотите разделить тип данных, который вы считаете частью функциональности, и частей что ты не

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

1 голос
/ 11 марта 2011

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

Вместо этого вы можете откатить всю базу данных до предыдущего состояния.Мир баз данных называет это «моментом восстановления»;и вы можете сделать это в MySQL с помощью комбинации журналов полного резервного копирования и репликации.

Я понятия не имею, почему вы хотите хранить свои резервные копии в git.

...