通过Flyway进行非事务SQL迁移

时间:2015-07-17 17:15:23

标签: sql-server full-text-search flyway full-text-indexing

我尝试在SQL中创建全文目录并通过Flyway迁移所有脚本,但在尝试迁移全文目录时出现错误。

Migration V1_5__FullTextSearch.sql failed
-------------------------------
SQL State  : S1000
Error Code : 574
Message    : CREATE FULLTEXT CATALOG statement cannot be used inside a user transaction.
Location   : C:/Users/User1/Desktop/flyway-3.2.1/sql/V1_5__FullTextSearch.sql (C:\Users\User1\Desktop\flyway-3.2.1\sql\V1_5__FullTextSearch.sql)
Line       : 152
Statement  : EXEC sp_CreateFullTextSearch

是否有办法避免Flyway强制执行用户事务或任何解决方法以创建FullText目录。

PD:

我在存储过程中创建FullText目录,但我有同样的运气:

CREATE PROCEDURE sp_CreateFullTextSearch
AS
BEGIN
    DECLARE @FullTextQuery AS nvarchar(MAX)= N'
    IF not EXISTS (SELECT 1 FROM sys.fulltext_catalogs
       WHERE name = ''MerchantSearchCat'') 
    begin
        CREATE FULLTEXT CATALOG MerchantSearchCat
        AUTHORIZATION [dbo]
    end

    IF not EXISTS (SELECT 1 FROM sys.fulltext_catalogs
       WHERE name = ''IndividualSearchCat'') 
    begin
        CREATE FULLTEXT CATALOG IndividualSearchCat
        AUTHORIZATION [dbo]
    end

    IF not EXISTS (SELECT 1 FROM sys.fulltext_catalogs
       WHERE name = ''CustomerSearchCat'') 
    begin
        CREATE FULLTEXT CATALOG CustomerSearchCat
        AUTHORIZATION [dbo]
    END

    IF not EXISTS (SELECT 1 FROM sys.fulltext_catalogs
       WHERE name = ''ItemSearchCat'') 
    begin
        CREATE FULLTEXT CATALOG ItemSearchCat
        AUTHORIZATION [dbo]
    END'

    EXEC sp_executesql @FullTextQuery
END

0 个答案:

没有答案