Создание сценария развертывания SQL - PullRequest
0 голосов
/ 18 января 2011

Мне было интересно, есть ли какой-нибудь цивилизованный метод сборки сценариев развертывания SQL из частей.Например, если у вас есть десять файлов с определениями хранимых процедур (их проще изменить и отладить), список таблиц с полями и три набора исходных данных (для каждого клиента).Или из любого другого, более сложного и организованного набора.

Поскольку изменение файла схемы размером 200 КБ и его увеличение очень сложно.

Я лично написал несколько сценариев PHP, которые собирали весь файл длямне.Итак, сохраненный файл proc выглядит следующим образом:

--<?php $procParams = "@UserLogin varchar(50), @RightName varchar(100)"; ?> 
--<?php if (!defined('PROC_INNER')) { ?> 
if exists (select * from sys.objects where object_id = OBJECT_ID(N'DepriveUserRight') and type in (N'P', N'PC'))
begin
  drop procedure DepriveUserRight
end;
go

--returns all the object types
create procedure DepriveUserRight @UserLogin varchar(50), @RightName varchar(100)
as
--<?php } ?> 
  declare @RightId int
  select @RightId = RightID from [Right] where RightName = @RightName

  exec DepriveUserRightById @UserLogin, @RightId
--<?php if (!defined('PROC_INNER')) { ?> 
go

exec DepriveUserRight 'mgr', 'save_login'
--<?php } ?> 

Я также включил некоторую семантику, такую ​​как построение типов из определения таблицы.Таблицы выглядят так:

 addTable('LinkObjectType');
?>
 LinkObjectTypeID int not null identity primary key,
 LinkObjectTypeName varchar(100) not null,
 LinkObjectTypeData varchar(250) null
<?php
 endTable();

И выполняемая мной команда php realSchema.sql > bin/realSchema.sql

(я использую MS SQL, и мое приложение не является веб-приложением, если это имеет значение.)

1 Ответ

0 голосов
/ 18 января 2011

Я бы порекомендовал вам приобрести инструмент для управления вашей базой данных, который создаст для вас скрипт.

Лично я использую Dezign для баз данных из Datanamic , поскольку, за деньги, это отличный инструмент.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...