관리되지 않는 데이터베이스 배포

2122 단어
지난 몇 달 동안 나는 2주 정도마다 회사 데이터베이스에 변경 사항을 배포했습니다. 데이터베이스를 사용하지 않는 주말에는 데이터베이스 백업을 만들고 Visual Studio를 로드하고 데이터베이스 변경 사항을 배포하고 몇 개의 프런트 엔드 파일을 복사했습니다.

내 주말과 저녁은 최근에 내 아들 James가 도착한 이후로 나에게 조금 더 소중해졌습니다. 데이터베이스 업그레이드를 실행하기에 적절한 시간에 저는 잠들어 있거나 잠이 들거나 James와 시간을 보내려고 합니다.

이 전체 배포는 SQL Server 작업을 사용하여 내가 선택한 시간에 실행되도록 설정할 수 있습니다. 실행한 후에도 모든 것이 제대로 작동하는지 확인해야 합니다. 문제가 발생하면 작업에서 나에게 이메일을 보낼 수 있으므로 회사에 최소한의 문제가 있지만 더 자주 변경되는지 확인할 수 있습니다.

관리되지 않는 데이터베이스 배포



알겠습니다. 설정하려면 어떻게 해야 하나요?


  • 모든 코드 변경 사항이 데이터베이스 백업에서 올바르게 작동하는지 테스트하고 모든 것이 소스 제어에 커밋됩니다.
  • 변경될 모든 항목을 백업하여 문제 발생 시 롤백할 수 있습니다. 이를 위해 일일 백업 작업에 의존하지 않고 직접 수행합니다. 내가 약간 편집증적일 수도 있고, 아니면 그냥 조심하는 것일 수도 있습니다.

  • BACKUP DATABASE DBName TO DISK='E:\SQL Backups\Filename.bak'
    
    


    나중에 쉽게 참조할 수 있도록 배포 날짜와 시간을 백업 파일 이름에 포함합니다. 프론트 엔드 파일의 경우 매일 백업되며 배포 중에만 변경되므로 매일 백업에 의존할 것이며 소스 제어에 있으므로 더 나쁜 경우에는 해당 파일을 볼 수 있습니다.
  • Visual Studio에서 게시 옵션을 사용하여 배포 스크립트를 만들고 데이터베이스 서버에 파일로 저장합니다.
  • SQL Server 작업을 만들고 설명이 포함된 이름을 지정합니다.
  • 단계에서 백업이라는 단계를 만들고 위의 T-SQL 코드를 입력합니다. 실패 시 중지하고 성공 시 계속하도록 설정합니다.
  • 다음 코드를 사용하여 운영 체제 유형 업그레이드라는 두 번째 단계를 만듭니다.

  • sqlcmd -S (local) -i "E:\SQL Backups\deploy_test.sql"
    
    


    -S 매개변수는 SQL Server 인스턴스의 이름이고 -i 매개변수는 위의 Visual Studio에서 생성한 SQL 스크립트의 경로입니다. 성공 또는 실패 보고를 종료하려면 이 작업을 설정하십시오.
  • 일정에서 작업을 실행할 날짜 시간을 생성하고 다시 시도하고 실행하여 문제를 일으킬 수 있으므로 이것이 일회성 작업인지 확인하십시오.
  • 완료 시 이메일로 설정한 알림에서 실패 시에만 이메일로 설정할 수 있습니다. 상관없이 작업의 결과를 알고 싶습니다.
  • SQL Server 작업을 사용하여 네트워크를 통해 파일을 복사하는 것은 가능하지만 설정이 간단하지 않으므로 이를 위해 Windows 작업 스케줄러를 사용하겠습니다.
  • 작업 스케줄러에서 작업을 생성하여 변경된 모든 ADP 또는 ADE를 복사합니다. SQL 작업이 실패하면 이전 버전을 다시 복사해야 하지만 간단합니다.

  • 이 프로세스를 확장하여 소스 제어에서 코드를 확인하고 훨씬 더 자동화된 배포를 수행할 수 있지만 지금은 이 정도면 충분합니다.

    좋은 웹페이지 즐겨찾기