2009-09-10 6 views
3

Как я могу отслеживать все изменения в моей базе данных?отслеживание изменений, внесенных в структуру базы данных

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

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

ответ

0

Неавтоматизированный, но полезный способ отслеживания изменений в db с помощью MySQL Query Browser. Он хранит историю всех операций, которые вы выполняете при ее использовании. Это делает сборку сценария изменений очень простой.

Очевидно, что это не решение, если вы хотите копировать все изменения, сделанные всеми пользователями. Но если вы просто хотите сохранить набор изменений в правильном порядке и не перепечатывать их, это работает очень хорошо.

0

Считаете ли вы использование MySQL Replication? Вы действительно не хотите реализовывать это самостоятельно, если только не по каким-то причинам.

+1

Это будет работать, только если базы данных являются репликами друг друга. Чаще всего у вас разные установки с разными данными - но они должны быть обновлены до той же схемы, когда вы обновляете остальную часть программного обеспечения, которое ведет переговоры с db. – nos

+0

Спасибо за ваш ответ, но репликация, похоже, не является решением, потому что все, что мне нужно знать, это изменения, внесенные в базу данных. – 2009-09-10 14:12:26

9

Шаги люди, как правило, проходят через когда сталкиваются с этими проблемами являются:

  1. Изменения дб развития любого способа, необходимо в то время.

  2. Готов к развертыванию новой версии приложения - реализовать, чтобы производственная база данных также обновлялась при сохранении данных.

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

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

  5. Найдите схему именования для версий этих сценариев изменений, чтобы любая установка могла быть обновлена ​​с данной версии до более новой версии.

  6. размещать сценарии создания и изменения БД в исходном управлении.

Удостоверьтесь, что вы не повторяете 1-3 каждый раз, но обойдитесь, сделав 4-6, чтобы вам не приходилось повторять 1-3 каждый раз.

+0

+1: обратите внимание на «приближение к 4-6». Еще лучше, найдите способ сделать контролируемые обновления во время разработки и сохранить SQL-скрипты и применить их к своей производственной БД. Затем включите «журнал изменений» в БД, который вы вставляете, всякий раз, когда запускается сценарий обновления. –

0

phpmyadmin был проект GSoC, включающий репликацию этим летом Томасом Срнкой. я думаю, что он сделал это путь к магистральному уже

+0

phpmyadmin умрет, как только будет достигнуто php_script_max_time, так что это хорошо для одного: делать небольшие изменения; в противном случае это бесполезно, как может быть. серьезно, не используйте его. используйте командную строку. – dusoft

2

Посмотри на LiquiBase

Это позволяет описать изменения базы данных, как XML, так что вы можете сохранить структуру базы данных в ваших VCS так же, как ваш код.

+0

Преимущество LiquiBase над (хорошим) советом goven от @Anonym заключается в том, что Liquibase позволяет вам управлять и контролировать свои изменения в db, а не просто реагировать на изменения. – DaveParillo

0

есть много инструментов, чтобы сделать данные сравнения: - Database Worbench - EMS sql manager - SQL Maestro - Database comparer

, но этот инструмент также может быть использован для создания сценария обновления

+0

Спасибо за ответ. Я использую EMS sql manager, как бы я мог использовать этот инструмент для сравнения баз данных. – 2009-09-11 08:44:57

+0

Вы должны использовать dbcomparer http://sqlmanager.net/en/products/mysql/dbcomparer –

+0

Кроме того, WebYog SQLYog Ultimate довольно аккуратный https://www.webyog.com/product/sqlyog – vicenteherrera

0

Я читала на net о схемах, является ли это полезным способом сравнения баз данных и поиска любых изменений?

+0

см. мой ответ, теперь pma интегрировала поддержку синхронизации и репликации – knittl

Смежные вопросы