Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
898
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
951
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
941
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1726
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6087
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4399
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Как мне организовать мой мастер ddl скрипт
В настоящее время я создаю master ddl для нашей базы данных. Исторически мы использовали резервное копирование / восстановление для версии нашей базы данных, а не поддерживали какие-либо сценарии ddl. Схема довольно большая.
Мое нынешнее мышление:
Разбейте скрипт на части (возможно, в отдельных скриптах):
- создание таблиц
- добавление индексов
- добавить триггеры
- добавить ограничения
Каждый сценарий вызывается главным сценарием.
- Мне может понадобиться скрипт для временного удаления ограничений для тестирования
- В схеме могут быть осиротевшие таблицы, я планирую идентифицировать подозрительные таблицы.
Еще какие-нибудь советы?
Edit: также, если кто-то знает хорошие инструменты для автоматизации части процесса, мы используем MS SQL 2000 (старый, я знаю).
Я думаю, что основная идея хороша.
Самое приятное в том, чтобы сначала построить все таблицы, а затем построить все ограничения, заключается в том, что таблицы могут быть созданы в любом порядке. Когда я сделал это, у меня был один файл на таблицу, который я поместил в каталог с именем "Tables", а затем скрипт, который выполнил все файлы в этом каталоге. Точно так же у меня была папка для скриптов ограничений (которые тоже делали внешний ключ и индексы), которые выполнялись после построения таблиц.
Я бы разделил сборку триггеров и хранимых процедур и запустил эти последние. Дело в том, что они могут быть запущены и повторно запущены в базе данных, не затрагивая данные. Это означает, что вы можете обращаться с ними так же, как с обычным кодом. Вы должны включать операторы "if exists...drop" в начале каждого сценария триггера и процедуры, чтобы сделать их повторно выполняемыми.
Так что порядок будет таким
- создание таблиц
- добавление индексов
- добавить ограничения
Затем
- добавить триггеры
- добавление хранимых процедур
В моем текущем проекте мы используем MSBuild для запуска сценариев. Есть несколько целевых расширений , которые вы можете получить для него, которые позволяют вызывать sql скрипты. В прошлом я использовал perl, который тоже был хорош (и batch files...which я бы не рекомендовал - они слишком ограничены).
есть аккуратные инструменты, которые будут перебирать весь сервер sql и извлекать все таблицы, представления, сохраненные процедуры и определения UDF в локальную файловую систему в виде SQL скриптов (текстовых файлов). Я использовал это с 2005 и 2008 годами, хотя не уверен, как это будет работать с 2000 годом. Проверить http://www.antipodeansoftware.com/Home/Products
То, что у вас там есть, кажется довольно хорошим. Моя компания иногда, для достаточно больших баз данных, разбила его еще дальше, возможно, до уровня отдельного объекта. Таким образом, каждый table/index/... имеет свой собственный файл. Может быть полезным, может быть излишним. Все зависит от того, как вы его используете.
@Justin
По домену в основном всегда достаточно. Я согласен, что есть некоторые сложности, с которыми нужно иметь дело, делая это таким образом, но это должно быть достаточно легко справиться.
Я думаю, что этот метод обеспечивает немного больше разделения (что в большой базе данных вы будете ценить), но при этом делает себя довольно управляемым. Мы также пишем сценарии Perl, которые выполняют большую часть обработки этих файлов DDL, так что это может быть хорошим вариантом для обработки этого.
@Adam
Или как насчет просто по домену-полезная группировка связанных таблиц в одном файле, но отдельно от rest?
Единственная проблема заключается в том, что некоторые домены (в этой несколько устаревшей системе) тесно связаны. Кроме того, вы должны поддерживать зависимости между различными подскриптами.
Если вы ищете инструмент автоматизации, я часто работал с EMS SQLManager, который позволяет автоматически генерировать скрипт ddl из базы данных.
Вставки данных в справочные таблицы могут быть обязательными перед вводом базы данных в эксплуатацию. Это можно даже рассматривать как часть сценария ddl. EMS также может создавать сценарии для вставки данных из существующих баз данных.
Потребность в индексах может быть неправильно оценена на этапе ddl. Вам просто нужно будет объявить их для первичных / внешних ключей. Другие индексы следует создавать позже, после определения представлений и запросов
Ранее я организовал свой код DDL по одному файлу на сущность и сделал инструмент, который объединил его в один скрипт DDL.
Мой бывший работодатель использовал схему, в которой вся таблица DDL была в одном файле (хранится в синтаксисе oracle), индексы в другом, ограничения в третьем и статические данные в четвертом. Вместе с этим в paralell был сохранен сценарий изменения (снова в Oracle). Преобразование в SQL было произведено вручную. Это был настоящий бардак. Я действительно написал удобный инструмент, который преобразует Oracle DDL в SQL сервер (он работал 99.9% в то время).
Недавно я перешел на использование командной системы Visual Studio для специалистов по базам данных . До сих пор он работает нормально, но есть некоторые сбои, если вы используете функции CLR в базе данных.