Stop App Pool
Invoke-Command -ComputerName "EpicorAPP01" -ScriptBlock { Stop-WebAppPool -Name "ERP102300MRP" }
Backup DB
BACKUP DATABASE [Epicor10Live] TO DISK = N'T:\AutoCopy_Epicor10DB.bak' WITH COPY_ONLY, NOFORMAT, INIT, NAME = N'Epicor10Live-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10
Restore DB
ALTER DATABASE [Epicor10MRP] SET SINGLE_USER WITH ROLLBACK IMMEDIATE RESTORE DATABASE [Epicor10MRP] FROM DISK = N'T:\AutoCopy_Epicor10DB.bak' WITH FILE = 1, MOVE N'Epicor10Live' TO N'M:\SQL DBs\Epicor10MRP.mdf', MOVE N'Epicor10Live_log' TO N'L:\SQL Logs\Epicor10MRP_Log.ldf', NOUNLOAD, REPLACE, STATS = 5
ALTER DATABASE [Epicor10MRP] SET MULTI_USER
GO
Update SQL Script
USE [Epicor10MRP]
GO
UPDATE [Erp].[Company]
SET [Name] = '*** BV Dairy - MRP Test Environment ' + convert(varchar, GetDate(), 103) + ' ***'
WHERE [Company] = 'BVD'
GO
UPDATE [Ice].[SysCompany]
SET [Name] = '*** BV Dairy - MRP Test Environment ' + convert(varchar, GetDate(), 103) + ' ***'
WHERE [Company] = 'BVD'
GO
UPDATE [Ice].[FavItems]
SET [AppServerURL] = REPLACE(AppServerURL, 'Live', 'MRP')
GO
UPDATE [Ice].[Menu]
SET [Program] = REPLACE(Program, 'Live', 'MRP')
GO
UPDATE [Ice].[SysCompany]
SET [EntSearchURL] = ''
GO
UPDATE [Ice].[SysConfig]
SET [SysCharacter01] = ''
GO
UPDATE [Ice].[BpDirective]
SET [IsEnabled] = 0
WHERE [Source] = 'DB' and [BpMethodCode] = 'Erp.PartTran.Update' and [Name] = 'KanbanAutoPrint'
GO
Start App Pool
Invoke-Command -ComputerName "EpicorAPP01" -ScriptBlock { Start-WebAppPool -Name "ERP102300MRP" }
Build Email Body
public void Main()
{
// TODO: Add your code here
string body = string.Empty;
body = "Epicor10LIVE Database has been copied to Epicor10MRP\n\n";
body += "The LATEST Transaction Date in the newly copied Epicor10MRP DB is ";
body += Dts.Variables["User::LatestTranDate"].Value;
body += "\n\nIf this date is not today's date, then check to ensure the copy has worked as expected.";
Dts.Variables["User::EmailBody"].Value = body;
Dts.TaskResult = (int)ScriptResults.Success;
}