Import the database from UAT or Production in Dynamics 365 for Finance and operation (D365fo)

  • Download a database backup (.bacpac) file.
  • Download sqlpackage .NET Core for Windows from Get sqlpackage .NET Core for Windows.
  • Open a Command Prompt window, and run the following commands from the sqlpackage .NET Core folder: 

SqlPackage.exe /a:import /sf:<Backup Path> /tsn:<Target server name> /tdn:<Target database name>  /p:CommandTimeout=1200 /TargetTrustServerCertificate:True

Example:

SqlPackage.exe /a:import /sf:C:\Backup\UATbackup.bacpac /tsn:DEV_SERVER /tdn:AxDB_FromUAT /p:CommandTimeout=1200 /TargetTrustServerCertificate:True

  • Run the following SQL script :

CREATE USER axdeployuser FROM LOGIN axdeployuser

EXEC sp_addrolemember 'db_owner', 'axdeployuser'

 

CREATE USER axdbadmin FROM LOGIN axdbadmin

EXEC sp_addrolemember 'db_owner', 'axdbadmin'

 

 

--CREATE USER axmrruntimeuser FROM LOGIN axmrruntimeuser

--EXEC sp_addrolemember 'db_datareader', 'axmrruntimeuser'

--EXEC sp_addrolemember 'db_datawriter', 'axmrruntimeuser'

 

CREATE USER axretaildatasyncuser FROM LOGIN axretaildatasyncuser

 

CREATE USER axretailruntimeuser FROM LOGIN axretailruntimeuser

 

CREATE USER axdeployextuser FROM LOGIN axdeployextuser

 

CREATE USER [NT AUTHORITY\NETWORK SERVICE] FROM LOGIN [NT AUTHORITY\NETWORK SERVICE]

EXEC sp_addrolemember 'db_owner', 'NT AUTHORITY\NETWORK SERVICE'

 

UPDATE T1

SET T1.storageproviderid = 0

    , T1.accessinformation = ''

    , T1.modifiedby = 'Admin'

    , T1.modifieddatetime = getdate()

FROM docuvalue T1

WHERE T1.storageproviderid = 1 --Azure storage

 

DROP PROCEDURE IF EXISTS SP_ConfigureTablesForChangeTracking

DROP PROCEDURE IF EXISTS SP_ConfigureTablesForChangeTracking_V2

GO

-- Begin Refresh Retail FullText Catalogs

DECLARE @RFTXNAME NVARCHAR(MAX);

DECLARE @RFTXSQL NVARCHAR(MAX);

DECLARE retail_ftx CURSOR FOR

SELECT OBJECT_SCHEMA_NAME(object_id) + '.' + OBJECT_NAME(object_id) fullname FROM SYS.FULLTEXT_INDEXES

    WHERE FULLTEXT_CATALOG_ID = (SELECT TOP 1 FULLTEXT_CATALOG_ID FROM SYS.FULLTEXT_CATALOGS WHERE NAME = 'COMMERCEFULLTEXTCATALOG');

OPEN retail_ftx;

FETCH NEXT FROM retail_ftx INTO @RFTXNAME;

 

BEGIN TRY

    WHILE @@FETCH_STATUS = 0

    BEGIN

        PRINT 'Refreshing Full Text Index ' + @RFTXNAME;

        EXEC SP_FULLTEXT_TABLE @RFTXNAME, 'activate';

        SET @RFTXSQL = 'ALTER FULLTEXT INDEX ON ' + @RFTXNAME + ' START FULL POPULATION';

        EXEC SP_EXECUTESQL @RFTXSQL;

        FETCH NEXT FROM retail_ftx INTO @RFTXNAME;

    END

END TRY

BEGIN CATCH

    PRINT error_message()

END CATCH

 

CLOSE retail_ftx;

DEALLOCATE retail_ftx;

-- End Refresh Retail FullText Catalogs

/*

--Begin create retail channel database record--

declare @ExpectedDatabaseName nvarchar(64) = 'Default';

declare @DefaultDataGroupRecId BIGINT;

declare @ExpectedDatabaseRecId BIGINT;

IF NOT EXISTS (select 1 from RETAILCONNDATABASEPROFILE where NAME = @ExpectedDatabaseName)

BEGIN

       select @DefaultDataGroupRecId = RECID from RETAILCDXDATAGROUP where NAME = 'Default';

       insert into RETAILCONNDATABASEPROFILE (DATAGROUP, NAME, CONNECTIONSTRING, DATASTORETYPE)

       values (@DefaultDataGroupRecId, @ExpectedDatabaseName, NULL, 0);

       select @ExpectedDatabaseRecId = RECID from RETAILCONNDATABASEPROFILE where NAME = @ExpectedDatabaseName;

       insert into RETAILCDXDATASTORECHANNEL (CHANNEL, DATABASEPROFILE)

       select RCT.RECID, @ExpectedDatabaseRecId from RETAILCHANNELTABLE RCT

       inner join RETAILCHANNELTABLEEXT RCTEX on RCTEX.CHANNEL = RCT.RECID

        update RETAILCHANNELTABLEEXT set LIVECHANNELDATABASE = @ExpectedDatabaseRecId where LIVECHANNELDATABASE = 0

END;

--End create retail channel database record

*/

  • Turn on change tracking:

ALTER DATABASE <your database name> SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 6 DAYS, AUTO_CLEANUP = ON);

Example:

ALTER DATABASE AxDB_FromUAT SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 6 DAYS, AUTO_CLEANUP = ON);


  • Stop the following services:
    • World Wide Web Publishing Service
    • Microsoft Dynamics 365 Unified Operations: Batch Management Service
    • Management Reporter 2012 Process Service
  • Rename the AxDB database to AxDB_orig.
  • Rename the AxDB_FromUAT database to AxDB.
  • Restart the three services:
    • ​​​​​World Wide Web Publishing Service
    • Microsoft Dynamics 365 Unified Operations: Batch Management Service
    • Management Reporter 2012 Process Service


Orginal post 

https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/database/dbmovement-scenario-exportuat#import-the-database


Comments

Popular posts from this blog

How to loop through enum in dynamics ax 2012 using x++

How to read from csv file in Dynamics AX 2012 Through X++

How to get field label in dynamics ax 2012 using x++