Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Представляю вашему вниманию SQL Editor собственной разработки / 25 сообщений из 36, страница 1 из 2
29.04.2015, 09:40
    #38948147
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Если вы предпочитаете проектировать БД в текстовом редакторе, то эта программа для вас.
Тут имеется подсветка синтаксиса, многооконный интерфейс, дерево каталогов и файлов файловой системы,
поиск в окне, поиск в каталоге. Работа на данный момент организована со скриптами MS SQL Server и MySQL.
Есть возможность доработать для любого сервера, мне пока понадобились эти два.

Скажете, а зачем еще один редактор SQL, их уже полно. Отвечу, тут есть одна фича, которой я не встречал нигде
и без которой я не представляю себе разработку БД. В некотором виде эта фича появилась в Visual Studio, но она еще далека от идеала.

Так вот, фича заключается в том, что программа позволяет организовать загрузку скрипт в БД одним нажатием кнопки.
При этом скрипт, представляющий собой создание таблиц, вьюх, процедур, функций и триггеров заливается в БД не ломая ее.
При этом БД может быть уже используемой приложением, то есть там уже есть таблицы с пользовательскими данным, есть хранимые процедуры и т.д. Фича данного редактора в том, что он смотрит что есть в БД и модифицирует имеющиеся объекты БД не теряя пользовательские данные.

Например, я веду разработку следующего кода в своем редакторе

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
create table Company
(
  ID int indetity(1,1) primary key,
  Name varchar(256)
)
go

create procedure SelectCompany
  @ID int
as
  select ID, Name from Company where ID = @ID
go

create procedure UpdateCompany
  @ID int,
  @Name varchar(256)
as
  update Company
    set Name = @Name
    where ID = @ID
go



загрузил скрипт в БД, написал клиентское приложение и внедрил его. Пользователи активно работают, во всю используют приложение. И тут возникла необходимость добавить поле в таблицу. Добавляю

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
create table Company
(
  ID int indetity(1,1) primary key,
  Name varchar(256),
  Address varchar(1024)
)
go

create procedure SelectCompany
  @ID int
as
  select ID, Name, Address from Company where ID = @ID
go

create procedure UpdateCompany
  @ID int,
  @Name varchar(256),
  @Address varchar(1024)
as
  update Company
    set Name = @Name,
        Address = @Address
    where ID = @ID
go



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

Кроме того можно компилировать (заливать в БД) не только один файл (не только лишь один файл, но мало кто это может :)
(с) но и папку целиком и даже проект целиком. И это еще не все. В начале каждого файла скрипта можно написать строчку
include=.\Bank.sql
и тогда перед компиляцией файла Company.sql будет выполнена компиляция файла Bank.sql
Словом компиляция я называю заливку скрипта в БД.

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

Программа поставляется бесплатно, как есть с целью ее распространения и тестирования. Любые предложения и пожелания приветствуются.

Загрузить SQLEditor

--------------------
Не учи отца и баста!
...
Рейтинг: 0 / 0
29.04.2015, 09:54
    #38948173
Представляю вашему вниманию SQL Editor собственной разработки
Прикольная возможность (судя по описанию).
А физически как это происходит ?
Сравниваются структуры таблиц и делается умный скрипт пересоздания и переливки данных ?

У меня это ручные скрипты вида:

* Переименовать старую таблицу
* Создать новую
* Перелить данные
* Грохнуть переименованную таблицу
* Создать индексы
(профит)

примерно так делает штатный SSMS.
...
Рейтинг: 0 / 0
29.04.2015, 09:56
    #38948179
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
постоянный мембер,

Также и я сделал, поэтому данный редактор не подойдет для мегабольших БД с огромным числом активных коннекций.
А вот для маленьких и средненьких проектов вещь незаменимая. Вот бы еще к SVN подключить
...
Рейтинг: 0 / 0
29.04.2015, 11:01
    #38948276
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Old Nickпри этом пользователи могут продолжат работать не отключаясь от сервера
И MS SQL позволяет переименовать таблицу и потом её грохнуть не отключая пользователей,
которые с ней уже работают?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
29.04.2015, 11:56
    #38948384
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Dimitry SibiryakovOld Nickпри этом пользователи могут продолжат работать не отключаясь от сервера
И MS SQL позволяет переименовать таблицу и потом её грохнуть не отключая пользователей,
которые с ней уже работают?..


Да, представь себе, позволяет. Может слышал что-нибудь про транзакции и многопользовательский режим работы?
...
Рейтинг: 0 / 0
29.04.2015, 12:05
    #38948395
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Dimitry SibiryakovOld Nickпри этом пользователи могут продолжат работать не отключаясь от сервера
И MS SQL позволяет переименовать таблицу и потом её грохнуть не отключая пользователей,
которые с ней уже работают?..

Зависит от того, что понимать под "работают"
...
Рейтинг: 0 / 0
29.04.2015, 12:09
    #38948403
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Old NickДа, представь себе, позволяет. Может слышал что-нибудь про транзакции и
многопользовательский режим работы?
И что происходит с данными, добавленными в таблицу уже после того, как Ваш редактор её
переименовал и начал переливать данные?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
29.04.2015, 13:02
    #38948497
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Dimitry SibiryakovOld NickДа, представь себе, позволяет. Может слышал что-нибудь про транзакции и
многопользовательский режим работы?
И что происходит с данными, добавленными в таблицу уже после того, как Ваш редактор её
переименовал и начал переливать данные?


Иди изучай многопользовательский режим работы СУБД, кури мануалы.
...
Рейтинг: 0 / 0
29.04.2015, 13:15
    #38948521
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Old Nick,

ну все это есть в SSDT + графика и много чего вплоть до svn
...
Рейтинг: 0 / 0
29.04.2015, 14:41
    #38948667
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
ViPRos,

Да, там это есть, но немного не дотягивает.

1. Выстроить очередность скриптов в нужной последовательности нельзя
2. Скрипты обновления таблиц (перезаливки данных) вынесены из транзакции. То есть весь пакет в одной транзакции не сделать, нужно ручками скрипт править
3. Скрипт формируется для конкретной БД по сравнительной схеме, для другой БД нужно заново читать текущую версию и загружать ее в схему XML
4. Это всё есть только для MS SQL Server

У меня пока реализация для MS SQL и для MySQL, но есть возможность сделать и для FireBird и для Oracle и вообще для любой. Надо просто добавить модуль и перекрыть несколько методов. Вот если поступят заявки, то сделаю, а так я добавляю только для себя по мере надобности
...
Рейтинг: 0 / 0
29.04.2015, 14:58
    #38948690
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Old Nickесть возможность сделать и для FireBird и для Oracle
Нету. У Оракула вообще нет транзакционного DDL, а у Firebird он глючит в сочетании с DML.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
29.04.2015, 14:59
    #38948692
Гхостик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Old Nickесть возможность сделать и для FireBird и для Oracle и вообще для любой.В курсе что в oracle ddl предложения коммитятся автоматически, и все связанные скажем с дропнутой таблицей процедуры/пакеты инвалидируются?
...
Рейтинг: 0 / 0
29.04.2015, 16:40
    #38948827
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
ГхостикOld Nickесть возможность сделать и для FireBird и для Oracle и вообще для любой.В курсе что в oracle ddl предложения коммитятся автоматически, и все связанные скажем с дропнутой таблицей процедуры/пакеты инвалидируются?

Не в курсе, я же говорю, что еще не сделал. У MySQL тоже с этим есть проблемы, но чаще всего прокатывает нормально.
Ну что ж, значит будем выкручиваться, что-нибудь придумаем, на то и голова есть.
...
Рейтинг: 0 / 0
11.05.2015, 12:58
    #38955681
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Похоже никто не понял что это такое. Попробуем на примере. Работал я в одной конторе, там разрабатывали проект на SQL, почти вся логика в БД. Несколько человек работают над одним проектом. У каждого своя копия БД, добавляют таблицы, правят таблицы, переписывают хранимки и т.д. Потом наступаем время Ч и нужно выпустить релиз и тут начинается.

1. Каждый готовит скрипт того, чего он наделал.
2. Собирают скрипты в кучу
3. С рабочей базы снимают бекап, делают копию.
4. Накатывают туда скрипт.
5. Тестируют на ошибки
6. Правят скрипт и тестируют

5 и 6 пункты повторяют до победного.

Чаще всего на подготовку релиза уходило больше времени, чем на разработку логики.

А как у вас?
...
Рейтинг: 0 / 0
11.05.2015, 13:12
    #38955689
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Old NickА как у вас?
А у нас разработкой БД занимается один архитектор. Причём делает он это ДО того, как
разработчики начинают лепить к ней фронтэнды.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11.05.2015, 13:41
    #38955707
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Dimitry Sibiryakov,

И как он это делает, неизвестно?
...
Рейтинг: 0 / 0
11.05.2015, 13:54
    #38955712
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Old NickИ как он это делает, неизвестно?
Обычно он это делает с помощью мозга, а не шустрых лапок.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11.05.2015, 14:17
    #38955736
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Old NickЧаще всего на подготовку релиза уходило больше времени, чем на разработку логики.системы контроля версий? интеграционное тестирование? современные средства разработки? - не, не слышали
...
Рейтинг: 0 / 0
11.05.2015, 15:12
    #38955762
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Old NickА как у вас?У нас внедряется техника canary release . А пока это происходит, то следуем идее feature per branch .
...
Рейтинг: 0 / 0
15.05.2015, 21:20
    #38960335
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Old NickПохоже никто не понял что это такое.
...
Чаще всего на подготовку релиза уходило больше времени, чем на разработку логики.Непонятно, каким образом "это" уменьшает время на подготовку релиза?

Кроме как экономии времени на подготовку первого скрипта, ничего не нахожу.

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

Кстати, для маленьких и простых баз MS выпустило чудесное средство, которое тоже само умеет обновлять модель БД. Это даже ещё удобнее, хотя и с ограниченными возможностями.
SQL Server Data Tools (SSDT)
...
Рейтинг: 0 / 0
15.05.2015, 21:49
    #38960350
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Dimitry SibiryakovА у нас разработкой БД занимается один архитектор. Причём делает он это ДО того, как
разработчики начинают лепить к ней фронтэнды.Сферическая база в вакууме?

Обычно проектирование БД и программирование происходят во время эксплуатации системы, больше того, бывает, выставляется требование непрерывности обслуживания пользователей (нет окон на обслуживание, апгрейд версии).
И ещё бывает, что разработкой базы занимается не один человек, поскольку одинпросто не справится.

Так что эти рассказы:

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

это либо чистые фантазии, либо госпопил.
...
Рейтинг: 0 / 0
16.05.2015, 09:03
    #38960459
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
alexeyvgOld NickПохоже никто не понял что это такое.
...
Чаще всего на подготовку релиза уходило больше времени, чем на разработку логики.Непонятно, каким образом "это" уменьшает время на подготовку релиза?

Кроме как экономии времени на подготовку первого скрипта, ничего не нахожу.

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

Кстати, для маленьких и простых баз MS выпустило чудесное средство, которое тоже само умеет обновлять модель БД. Это даже ещё удобнее, хотя и с ограниченными возможностями.
SQL Server Data Tools (SSDT)

Попробую пояснить. "Это" на подготовку релиза время вообще не тратит. ВООБЩЕ!
То есть, когда начинаете проектировать базу, то просто напросто пишете скрипт для новой базы.
Только CREATE (только хардкор :), никаких ALTER и IF EXISTS.

CREATE TABLE, CREATE VIEW, CREATE TRIGGER, CREATE PROCEDURE, CREATE FUNCTION

Затем нажимаете одну (1) ОДНУ кнопку и база создана.

Теперь Вы внесли изменения в структуру. Для этого нужно просто переписать CREATE TABLE или CREATE PROCEDURE, в зависимости от того, что изменилось. И опять нажимаете ОДНУ кнопку, структура изменилась. И при этом не важно какая это была база. Тестовая, тестовая у коллеги, продакшн или база от другого приложения. Теперь она рабочая и актуальная. Не нужно сравнивать версии, не нужно трястить над пользовательскими данными. Данные не потеряются, версия станет последняя и актуальная.

Всего одна кнопка! Что может быть проще?

И при этом исходники могут лежать в SVN и можно вести многопользовательскую разработку.

Еще раз. В скриптах пишете всегда только CREATE и никогда ALTER. При компиляции никогда не проверяете, что есть в базе.
...
Рейтинг: 0 / 0
16.05.2015, 09:21
    #38960471
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Old Nick
Еще раз. В скриптах пишете всегда только CREATE и никогда ALTER. При компиляции никогда не проверяете, что есть в базе.

Т.е. из двух скриптов
Код: sql
1.
Create table T (A Int, B Int)


Код: sql
1.
Create table T (A Int, C Int)



Оно создаст таблицу (A, B, С)?
...
Рейтинг: 0 / 0
16.05.2015, 09:37
    #38960476
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Кот МатроскинOld NickЕще раз. В скриптах пишете всегда только CREATE и никогда ALTER. При компиляции никогда не проверяете, что есть в базе.

Т.е. из двух скриптов
Код: sql
1.
Create table T (A Int, B Int)


Код: sql
1.
Create table T (A Int, C Int)



Оно создаст таблицу (A, B, С)?

Нет, актуальной будет последняя таблица
...
Рейтинг: 0 / 0
16.05.2015, 09:58
    #38960478
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представляю вашему вниманию SQL Editor собственной разработки
Old Nick,

Т.е. даже в том случае, когда при стандартной технологии с ALTER я не получил бы
вообще никаких проблем - Ваша технология подготовки релиза и Ваш инструмент мне их создаст?
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Представляю вашему вниманию SQL Editor собственной разработки / 25 сообщений из 36, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]