Страница 1 из 1

SQL-журнал

Добавлено: Чт 19 май 2011 14:06
KiTE
Доброго времени суток!

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

Подскажите, пожалуйста, как настроить вывод в SQL-журнал.

Добавлено: Чт 19 май 2011 14:56
.jp
Установите опцию "Писать запросы, посылаемые программой, в SQL журнал" (Сервис -> Параметры -> Среда -> Окно вывода).

Добавлено: Чт 19 май 2011 15:00
KiTE
Получилось, большое спасибо!

Добавлено: Чт 19 май 2011 20:38
JayDi
Для создания патчей на базы данных идеально подходит инструмент "Новое сравнение схем". Он быстро проанализирует и сгенерирует скрипт для обновления. Очень удобно.

Добавлено: Пт 20 май 2011 13:19
KiTE
Да, это тоже вариант.
Но, иногда, нужно обновлять не только структуру, а и сами данные. Причем, в строго определенной последовательности. Мне проще готовить патч локально по ходу разработки, а потом уже применять его к рабочим базам.

Добавлено: Пт 20 май 2011 13:25
.jp
KiTE писал(а):...Но, иногда, нужно обновлять не только структуру, а и сами данные. Причем, в строго определенной последовательности.
Тогда используете связку: сравнение схем + сравнение данных. Эти инструменты в наличии в студии.
Кстати, зависимости объектов в скрипте для сравнения схем также учтены.

Добавлено: Сб 28 май 2011 12:46
geckoneer
На самом деле в журнал в версиях 4.х в журнал выводились только команды, которые реально что-то изменяли. Сейчас же, если включить журнал, то выводятся все подряд, включая SHOW CREATE TABLE, SHOW COLUMNS и прочие SELECT.

Хотелось бы настройку, чтобы в журнал писались только запросы на изменение, как это было в версиях 4.х.

Уж очень удобно и быстро было делать патчи из этого журнала. Сейчас же надо откидывать "шелуху".

Добавлено: Пн 30 май 2011 08:09
.jp
На самом деле в журнал в версиях 4.х в журнал выводились только команды, которые реально что-то изменяли. Сейчас же, если включить журнал, то выводятся все подряд, включая SHOW CREATE TABLE, SHOW COLUMNS и прочие SELECT.

Хотелось бы настройку, чтобы в журнал писались только запросы на изменение, как это было в версиях 4.х.

Уж очень удобно и быстро было делать патчи из этого журнала. Сейчас же надо откидывать "шелуху".
Так и есть. В пятой версии применен новый компонент "Database Monitor". При включении опции он отображает ВСЕ запросы, посылаемые программой, в SQL журнал. Опция и имеет соответствующее название.

Добавлено: Пн 30 май 2011 08:32
KiTE
.jp писал(а):В пятой версии применен новый компонент "Database Monitor". При включении опции он отображает ВСЕ запросы, посылаемые программой, в SQL журнал. Опция и имеет соответствующее название.
Это радует. Теперь можно вести журнал ручного изменения данных в таблицах. Единственное, что неудобно, запросы изменения данных генерируются с плейсхолдерами. Например:

Код: Выделить всё

UPDATE `spider`.`sources` SET `title` = :p1 WHERE ((`id` = :p2))
Параметры: 
	p1: Тестовая запись 2
	p2: 9
Удобнее было бы если плейсхолдеры зашивались бы в сам запрос. Например:

Код: Выделить всё

UPDATE `spider`.`sources` SET `title` = 'Тестовая запись 2' WHERE ((`id` = 9));
Чтобы, в случае чего, использовать запрос без предварительной обработки.

Добавлено: Пн 30 май 2011 11:18
AlexZ
KiTE писал(а):Удобнее было бы если плейсхолдеры зашивались бы в сам запрос. Например:

Код: Выделить всё

UPDATE `spider`.`sources` SET `title` = 'Тестовая запись 2' WHERE ((`id` = 9));
Чтобы, в случае чего, использовать запрос без предварительной обработки.
Мы добавили Ваше предложение в наш план разработки будущих версий.

Добавлено: Чт 23 июн 2011 14:21
geckoneer
.jp писал(а):
На самом деле в журнал в версиях 4.х в журнал выводились только команды, которые реально что-то изменяли. Сейчас же, если включить журнал, то выводятся все подряд, включая SHOW CREATE TABLE, SHOW COLUMNS и прочие SELECT.

Хотелось бы настройку, чтобы в журнал писались только запросы на изменение, как это было в версиях 4.х.

Уж очень удобно и быстро было делать патчи из этого журнала. Сейчас же надо откидывать "шелуху".
Так и есть. В пятой версии применен новый компонент "Database Monitor". При включении опции он отображает ВСЕ запросы, посылаемые программой, в SQL журнал. Опция и имеет соответствующее название.
С моей точки зрения, это как минимум изменение привычного функционала, т.к. невозможно настроить "Database Monitor" отображать только запросы DDL и запросы на изменение данных.

Добавлено: Чт 30 июн 2011 15:56
Duke
geckoneer писал(а):С моей точки зрения, это как минимум изменение привычного функционала, т.к. невозможно настроить "Database Monitor" отображать только запросы DDL и запросы на изменение данных.
Да, мы пошли на изменение существующего функционала по той причине, что в его прошлой реализации было невозможно логировать запросы, посылаемые при редактировании данных в гриде.

Добавлено: Чт 30 июн 2011 16:18
geckoneer
Да, мы пошли на изменение существующего функционала по той причине, что в его прошлой реализации было невозможно логировать запросы, посылаемые при редактировании данных в гриде.
Было бы хорошо, если бы можно было отфильтровать хотя бы SELECT и SHOW запросы из общего потока... Это бы частично вернуло привычный журнал, который был так удобен как основа для инкрементальных скриптов по изменению схемы базы данных. Да, есть инструмент по сравнению схем, но он очень громоздкий, если надо, например, переопределить поле из NOT NULL в NULL.

Добавлено: Пт 01 июл 2011 09:22
Duke
В целом, лог запросов оправдывает свое название. Он отображает запросы, посылаемые программой.

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

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