Вот мой сценарий, я администратор базы данных и получил задание по созданию репозитория битбакета с CI для управления всеми процедурами и функциями в SQL Server.Этот первый шаг был успешно выполнен с помощью flyway 5.2.4 с повторяющимися сценариями Repeatable.
Теперь я пытаюсь расширить проект, чтобы контролировать только индексы.
Некоторые проекты реализуют миграцию или другие миграциирешения и некоторые не реализуют.Так что я хотел бы контролировать индексы в этом же проекте.
У меня такой вопрос, возможно, документация прохождения не ясна, я также пытаюсь использовать сценарии NTV__, но не работает.
Кто-нибудь пробовал это раньше?Я спрашиваю о чем-то невозможном?
conf file
flyway.url=jdbc:sqlserver://select:1433;databaseName=database
flyway.user=sa
flyway.password=pass
flyway.locations=filesystem:/home/krismorte/repo/DOCKER/flyway-teste/
flyway.sqlMigrationSuffixes=.sql
flyway.table=flyway_my_sql_objects
flyway.baselineOnMigrate=true
flyway.allowMixedMigrations = true
повторяемый файл
CREATE OR ALTER PROCEDURE [DBA].[USP_UPDATESTATISTICS] @RUN INT = 0
-- WITH ENCRYPTION
AS
BEGIN
SET NOCOUNT ON;
DECLARE
@TOP INT = 200, -- QUANTOS INDEXES SERÃO EFETUADOS O REBUILD POR VEZ
@WINDOW_LIMIT DATETIME = '06:00:00', -- VALOR DO HORÁRIO LIMITE DA JANELA EX: '13:32:00'
@STR_UPDATESTATS NVARCHAR(MAX) = '',
@ID INT,
@TIME DATETIME
SELECT TOP (@TOP)
ID = IDENTITY(INT, 1, 1)
,DATABASENAME = DB_NAME()
,TABLENAME = O.NAME
INTO #STATISTICSTOUPDATE
FROM SYS.OBJECTS O
WHERE OBJECTPROPERTY(O.[OBJECT_ID], 'ISMSSHIPPED') = 0
AND O.TYPE_DESC = 'USER_TABLE'
ORDER BY [TABLENAME] DESC
WHILE EXISTS(SELECT TOP 1 1 FROM #STATISTICSTOUPDATE)
BEGIN
SELECT TOP 1
@ID = ID,
@TIME = CONVERT(VARCHAR(8),DATEADD(HOUR, -3, GETDATE()),108) ,
@STR_UPDATESTATS = '
SET ANSI_PADDING ON;
UPDATE STATISTICS [' + I.TABLENAME + '] WITH FULLSCAN;
SET ANSI_PADDING OFF;'
FROM #STATISTICSTOUPDATE I;
IF (@WINDOW_LIMIT IS NULL OR @TIME < @WINDOW_LIMIT)
BEGIN
BEGIN TRY
PRINT 'EXECUTANDO: ' + @STR_UPDATESTATS + CHAR(13) + CHAR(10);
IF @RUN = 1
EXEC (@STR_UPDATESTATS);
INSERT INTO [DBA].[LOGUPDATESTATISTICS] ([DATA], [DATABASE], [TABLE_NAME], [SCRIPT_REBUILD], [STATUS])
SELECT @TIME, I.DATABASENAME, I.TABLENAME, @STR_UPDATESTATS, 'OK' FROM #STATISTICSTOUPDATE I WHERE ID = @ID;
END TRY
BEGIN CATCH
INSERT INTO [DBA].[LOGUPDATESTATISTICS] ([DATA], [DATABASE], [TABLE_NAME], [SCRIPT_REBUILD], [STATUS], [ERROR_MESSAGE])
SELECT @TIME, I.DATABASENAME, I.TABLENAME, @STR_UPDATESTATS, 'OK', ERROR_MESSAGE() FROM #STATISTICSTOUPDATE I WHERE ID = @ID;
END CATCH
END
DELETE FROM #STATISTICSTOUPDATE WHERE ID = @ID;
END
DROP TABLE #STATISTICSTOUPDATE;
END
GO
Нет файла транзакции
create index ix_teste on [DBO].Table_EXTRACAO_10 (marketplace);
Повторяемоеработает нормально, но нет родной нет, я уже пытался изменить имя на V_