|
|
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
Мы рады сообщить вам о выпуске новой версии студии, в которой реализована функциональность рефакторинга баз данных. Как известно, рефакторинг базы данных является непростой задачей, и каждый разработчик или администратор рано или поздно с ней сталкивается. В каких случаях можно ожидать проблем при рефакторинге базы данных MySQL: 1) При переименовании столбца таблицы, на который ссылается столбец из другой таблицы через внешний ключ; 2) При переименовании столбца таблицы или самой таблицы, из которой происходит выборка в представлении; 3) При переименовании объектов, содержащих код. Рассмотрим перечисленные проблемы на примерах: 1) Переименование столбца таблицы, на который ссылается столбец из другой таблицы через внешний ключ. Есть две таблицы из базы sakila : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Если обычным способом попытаться переименовать столбец country_id в таблице country, выполнив следующий запрос (который, например, будет сгенерирован практически любым MySQL GUI инструментом): Код: sql 1. 2. MySQL выдаст ошибку вида: авторError on rename of '.\sakila\#sql-62c_c6' to '.\sakila\country' (errno: 150) Таким образом, перед переименованием столбца нужно найти все внешние ключи, удалить их, переименовать столбец и заново воссоздать все удаленные ранее внешние ключи: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 2) Предыдущий случай простой, но в реальной базе sakila, столбец country_id таблицы country еще участвует в выборке созданных представлений (view-шек). MySQL разрешит обычным способом переименовать столбец, но позже, при выборке данных из представления будет возникать ошибка: авторUnknown column 'sakila.country.country_id' in 'on clause' Чтобы избежать подобных ситуаций, необходимо после переименования столбца, отредактировать все представления, где участвует переименованный столбец. 3) Более "опасный" способ переименования объектов, в результате неудачи которого, можно было лишиться вообще исходного кода процедуры или функции — если в визуальном редакторе процедуры изменить имя процедуры и одновременно допустить синтаксическую ошибку в теле процедуры. Из-за того, что MySQL не позволяет при помощи ALTER PROCEDURE изменять код процедуры, приходится пересоздать процедуру с изменениями, т.е. сначала удалить созданную процедуру, а затем создать ее с новым именем и измененным кодом. В случае, если была допущена синтаксическая ошибка, то старая процедура успешно удалится, а новая не создастся (после чего, придется процедуру воссоздавать заново по памяти). Так работает любое приложение, для администрирования MySQL. dbForge Studio for MySQL, v6.0 делает безопасное переименование объектов, содержащих код: a) Создается вр е менная функция (процедура), содержащая исходный код (до переименования); b) Удаляются все объекты, где эта функция (процедура) вызывается; c) Создаются все объекты, где эта функция (процедура) вызывается, но с уже переименованным именем; d) Создается функция (процедура) с новым исходным кодом и с новым именем; e) Удаляется временная функция (процедура); Если этап d) заканчивается неудачей, то выполнение скрипта останавливается, и исходный код функции (процедуры) можно будет восстановить из вр е менного объекта. Рефакторинг в нашем приложении можно вызвать из контекстного меню каждого объекта в Проводнике базы данных, а также в визуальном редакторе объектов, при изменении имени уже созданного объекта. В новой версии функциональность "Рефакторинг" стала ключевой функциональностью , набравшей максимальное количество голосов пользователей. По нашим данным, функциональность рефакторинга баз данных не реализована ни в одном из существующих инструментов для администрирования MySQL. По ходу реализации, нам пришлось полностью переделать функциональность: сравнение схем, бекпа, генерацию скриптов, подсказчик кода и форматтер. В результате, это повлекло за собой задержку релиза на 2-3 месяца... Мы благодарим всех пользователей, участвовавших в голосовании за эту функциональность, и как и раньше - ждем ваших отзывов и предложений. Новую версию можно скачать на странице загрузок . С уважением, Команда devart ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2013, 20:16:23 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
Топик по предыдущей версии Версия 5.0 dbForge Studio for MySQL. Вопросы и предложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2013, 20:29:20 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
есть одно неудобство. построитель-констркутор не хочет работать с временными таблицами. багом это трудно назвать, да и фичей тоже. это решается удалением слова TEMPORARY при создании таблицы. и потом вставки его обратно. и соответственно удалением временной-постоянной таблицы :) за рефакторинг спасибо, желание поправить базу были - останавливала неизвестность результата. только последняя 5 версия не сообщает о появлении новой. это так задумано? новая версия только для sql.ru? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2013, 23:22:11 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
Это же бета ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 08:02:04 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
А где-то есть открытый баг трекер или сюда писать? Вот сейчас нашел такой небольшой баг: если открыть таблицу на просмотр данных и установить сортировку путем клика по заголовку столбца, то при нажатии на F5 сотрировка сбрасывается на дефолтную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 09:55:28 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
вадяпостроитель-констркутор не хочет работать с временными таблицами.Поддержка временных таблиц не планируется т.к. с ними есть технические сложности.вадяза рефакторинг спасибо, желание поправить базу были - останавливала неизвестность результата.В любом случае, работает приложение правильно или нет, просто необходимо перед любыми изменениями базы данных сделать бекап . Какой скрипт будет выполнять рефакторинг можно посмотреть, установив чекбокс "Сгенерировать скрипт не изменяя базу данных".вадятолько последняя 5 версия не сообщает о появлении новой. это так задумано? новая версия только для sql.ru?Бета ставится параллельно с релизной версией, и у нах разные каналы обновления - бета будет обновляться до следующего билда беты, а релизная версия будет обновлена до следующей релизной версии, при выходе последней.HettА где-то есть открытый баг трекер или сюда писать?Как Вам проще, можно публично через наш форум , можно индивидуально через тикеты , любый удобным способом. HettВот сейчас нашел такой небольшой баг: если открыть таблицу на просмотр данных и установить сортировку путем клика по заголовку столбца, то при нажатии на F5 сотрировка сбрасывается на дефолтную.Мы воспроизвели эту проблему и будем ее исправлять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2013, 13:36:21 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
авторВ любом случае, работает приложение правильно или нет, просто необходимо перед любыми изменениями базы данных сделать бекап. люди делятся на 2 категории: 1 категория - делают бекап 2 категория - будут делать бекап (не моё) давно перешёл в 1 категорию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2013, 10:14:03 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
А где-то можно настроить время ожидания ответа от сервера (TCP/IP, при разрыве соединения чтобы долго не ждал ответа) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2013, 10:06:14 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2013, 10:06:19 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
Случайно закрыл таблицу с данными. открыл ее назад, выполняю запрос, ничего не появляется. кликая по данному окну, предлагает выполнить скрипт, но если соглашусь, все равно не показывает результаты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2013, 16:08:26 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
а нет, отбой. все нормально. это оказывается я запятую в запросе забыл поставить. тут скорее всего, то что в самом окне с данными, не хватает информации о ошибке. так как окно с выводом информации я закрываю, для экономии места. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2013, 16:10:37 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
HettА где-то можно настроить время ожидания ответа от сервера (TCP/IP, при разрыве соединения чтобы долго не ждал ответа)В свойствах соединения на второй закладке можно установить таймаут подключения и таймаут выполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2013, 17:46:17 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
devartHettА где-то можно настроить время ожидания ответа от сервера (TCP/IP, при разрыве соединения чтобы долго не ждал ответа)В свойствах соединения на второй закладке можно установить таймаут подключения и таймаут выполнения. Точно, ведь видел же сотню раз и тут не мог вспомнить где) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2013, 18:00:19 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
вадялюди делятся на 2 категории: 1 категория - делают бекап 2 категория - будут делать бекап (не моё) Мне больше нравится версия про 3 категории: 3) кто делает бэкап и проверяет его целостность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2013, 23:31:51 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть 2 сервера, на обоих стоит mysql 5.6.10 настроена репликация(с использованием GTID). Столкнулся с такой пробемой: если править табличку на мастере через визуальный редактор, это не отображается в бинлоге и соответственно не переносится на slave. если через визуальный редактор создать табличку, опять не отображается в бинлоге. Но если делать то же самое через выполнение кода в sql-window то все корректно отображается в бинлоге. Если данные на мастере править через mysql command line client, изменения попадают в бинлог всегда. Собственно вопрос, это нормальное поведение дб форжа? Может где то какая то галочка не стоит? Или я криво настроил мастер? Версия дбфоржа 5, билд последний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2013, 05:43:00 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
mitbuЕсть 2 сервера, на обоих стоит mysql 5.6.10 настроена репликация(с использованием GTID). Версия дбфоржа 5, билд последний.Пока поддержки MySQL 5.6 в нашей студии нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2013, 11:26:26 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
при создании резервной копии, если база большая (у меня таблица 59000, поля картинки, та что затыкалась в предыдущих версиях) при отмене сздания, после ответов на все вопросы, сервер не останавливает посылку данных, мне не удалоь этого дождатьтся ~1мин. пришлось перегрузить mysql. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2013, 22:42:10 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
проще было сессию убить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2013, 10:41:41 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
Hett, наверное, было б и правильней... но мне было проще даже сервер рестартануть :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2013, 10:48:24 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
как так ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2013, 13:04:10 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
вадя, а если изменить строку запроса, которая начинается на DATE_FORMAT, то ситуация изменится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2013, 13:07:15 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
miksoft строку менял, делал DATEFORMAT(...) типа как собственная функция всё сохраняется , но в талисной части такая ж фигня. зы в строке правильное выражение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2013, 17:47:55 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
и во вкладке условия правильпо показывает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2013, 17:49:22 |
|
||
|
Рефакторинг баз данных в dbForge Studio for MySQL, v6.0
|
|||
|---|---|---|---|
|
#18+
а так правильно преобразует ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2013, 17:53:10 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38163577&tid=1832510]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
35ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 321ms |

| 0 / 0 |
