티스토리 뷰

실습 2 : 데이터베이스 및 애플리케이션 변경

이제 SQL 변경 자동화 프로젝트가 준비되었으므로 응용 프로그램의 일부 코드 변경과 함께 데이터베이스 스키마 및 데이터를 약간 변경해야한다.

랩 시나리오

  • PartsUnlimitedWebsite 프로젝트에서 web.config 파일을 편집한다. 연결 문자열을 변경하여 pul-dev 데이터베이스를 연결한다. 아래와 같이 연결 문자열을 업데이트한다.
  <connectionStrings>
  <add name="DefaultConnectionString" connectionString="Server=tcp:{your_sqlservername}.database.windows.net,1433;Initial Catalog=pul-dev;Persist Security Info=False;User ID={your_sql-username};Password={your_sql-password};" providerName="System.Data.SqlClient" />
   </connectionStrings>

 

  • 애플리케이션을 로컬로 다시 실행한다. F5를 누르거나 디버깅 시작 아이콘을 클릭하여 애플리케이션을 로컬로 빌드하고 실행한다.

 

홈 페이지에서 확인하면 오일 및 필터 제품에 대한 할인을 받을 수 있다.

 

애플리케이션 코드 변경사항: 고객이 새 해 제안으로 모든 제품에 대한 할인을 원한다고 가정한다. 이를 위해서는 기존 애플리케이션의 코드 변경이 필요하다.

데이터베이스 변경사항: 위 애플리케이션의 경우 데이터베이스에서 제품 가격을 업데이트한다.

예를 들어 Brakes 카테고리에서 가격을 할인으로 업데이트해야한다.

 

데이터베이스 변경 사항을 관리하고 애플리케이션과 함께 배포하는 방법을 살펴 보겠다.

1. SQL Server 개체 탐색기에서 pul-dev Azure SQL 데이터베이스에 연결한다.

 

 

2. pul-dev 데이터베이스에서 ‘Tables’을 확장한다. Products 테이블을 마우스 오른쪽 버튼으로 클릭하고 View Designer를 선택한다.

 

 

3. 디자인 창에서 데이터베이스 스키마 변경을 수행하거나 T-SQL을 사용할 수 있다. USD로 가격을 표시하기 위해 Products 테이블에 새 열이 필요하다고 가정하면 디자이너 (스키마 변경)를 사용하여 새 열 PriceUSD를 추가하고 Update를 클릭한다.

 

Preview Database updates 창에서 Update Database를 선택한다.

 

이렇게하면 dev 데이터베이스의 변경 사항이 업데이트된다.

 

 

4. SQL 변경 자동화 창을 열고 Refresh 클릭하여 가져올 보류중인 변경 사항을 확인한다.

 

이제 아래와 같이 스크립트 생성 아이콘을 클릭한다.

 

 

5. 그러면 스키마가 변경된 데이터베이스 프로젝트에 새 마이그레이션 스크립트가 추가된다. Refresh(verify script)을 클릭하여 스크립트를 확인한다.

 

SQL 변경 자동화는 Visual Studio 프로젝트 내부에 있고 스키마를 한 버전에서 다음 버전으로 가져 오는 숫자 순서의 SQL 마이그레이션 스크립트를 생성한다. 이러한 마이그레이션 스크립트를 버전 제어에 추가하고 이를 사용하여 데이터베이스 배포를 구축 및 릴리스하고 자동화 할 수 있다.

 

 

6. 더 나은 이해를 위해 스크립트의 이름을 바꿀 수 있다.

 

 

7. pul-dev 데이터베이스에서 Products 테이블을 선택하고 마우스 오른쪽 단추를 클릭 한 다음 View Data를 선택한다.

 

50% 할인 가격으로 가격 열을 업데이트해야한다.

 

 

8. 1.1.0-Changes 폴더를 마우스 오른쪽 버튼으로 클릭하고 새 마이그레이션 스크립트를 수동으로 추가한다. 그리고 스크립트의 이름을 아래와 같이 PriceUpdate와 같은 이름으로 바꾼다.

 

 

9. 이름이 변경된 스크립트에서 다음 쿼리를 입력하여 가격을 50% 할인으로 업데이트하고 프로젝트 배포를 클릭하여 변경 사항을 로컬 db에 배포한다.

UPDATE dbo.Products SET Price = Price * 0.5

GO

 

 

10. 새 가격을 보려면 Products 테이블을 선택한 다음 View Data 선택한다.

 

pul-dev에서 데이터베이스를 변경하고 마이그레이션 스크립트를 생성했다. 이제 애플리케이션 코드를 변경한다.

 

 

11. src\PartsUnlimitedWebsite\Views\Home\ 경로에서 Index.html 파일을 열고 아래와 같이 변경 한 다음 변경 사항을 저장한다.

 

 

12. 솔루션을 마우스 오른쪽 단추로 클릭하고 Configuration Manager를 선택한다. Release 구성의 경우 PartsUnlimited 데이터베이스 프로젝트에 빌드 및 배포 확인란을 선택 취소한다. 이 프로젝트를 빌드하기 위해 파이프라인에서 SQL 변경 자동화 태스크를 사용할 것이다.

 

 

13. Azure Repos에 대한 변경 사항을 커밋한다. Team Explorer에서 Changes를 선택한다. 커밋 주석을 입력하고 Commit All and Push를 선택하여 변경 사항을 서버에 커밋한다.

 

이를 통해 버전 제어 지원이 포함 된 SQL 변경 자동화 프로젝트를 추가하고 프로젝트를 Azure Repos에 커밋했다.

 

 

 

실습 3 : Azure DevOps에서 빌드 파이프라인 만들기

 

이제 애플리케이션과 데이터베이스 프로젝트 모두 버전을 제어했다. 다음으로 애플리케이션과 함께 SQL 변경 자동화 프로젝트를 빌드하는 빌드 파이프라인을 생성한다.

 

1. Azure DevOps 조직의 Pipelines –> Pipelines으로 이동한다. 새 파이프라인을 생성하기 전에 기존 빌드 파이프라인을 비활성화해야한다.

기존 PartsUnlimitedE2E 파이프라인을 선택하여 드롭 다운에서 파이프라인 일시 중지를 선택한다.

 

 

2. New Build pipeline을 생성하려면 새 빌드 파이프라인을 선택한다.

 

3. Use the classic editor를 선택하여 파이프라인 생성한다.

 

 

4. Select a source 창에서 소스 설정이 올바른지 확인하고 Continue를 클릭한다.

 

5. Choose a template 섹션에서 ASP.NET 템플릿을 선택하고 Apply를 클릭한다.

 

이 템플릿에는 .NET 프로젝트 용 패키지를 컴파일하고 만드는 태스크가 있다.

 

 

6. Visual Studio 빌드 태스크 바로 아래에 Redgate SQL Change Automation: Build 태스크를 추가한다.

 

위 태스크가 표시되지 않으면 SQL Change Automation: Build 확장을 설치했는지 확인한다.

 

 

7. Redgate SQL Change Automation: Build 태스크를 선택한다. 이 태스크는 SQL 변경 자동화 프로젝트를 빌드하고 마이그레이션 스크립트를 사용하여 Nuget 패키지를 만든다. SQL Change Automation project를 찾아보고 선택한다. Output Nuget Package IDPartsUnlimiteDatabase로 입력한다.

 

 

8. 빌드 파이프라인을 Save & Queue 한다. 

 

9. 빌드가 성공하면 PartsUnlimitedDatabase.1.0.nupkg PartsUnlimitedWebsite.zip을 빌드 아티팩트의 일부로 사용할 수 있는지 확인한다.

 

 

실습 4 : Azure DevOps에서 릴리스 파이프라인 만들기

 

이제 애플리케이션 및 데이터베이스 패키지를 빌드 아티팩트로 사용할 수 있습니다. 이 연습에서는 애플리케이션과 함께 데이터베이스 패키지를 배포하는 릴리스 파이프라인을 생성다.

 

1. Azure DevOps 조직의 Pipelines –> Releases로 이동한다. New release pipeline을 선택하여 새로운 파이프라인을 생성한다.

 

 

2. Select a template 마법사에서 Azure App Service deployment 템플릿을 선택하고 Apply한다.

 

 

3. 파이프라인 이름을 변경한다. 이 경우 PartsUnlimited-CD이다. Add an artifact을 클릭한다.

 

 

4. Add an artifact 마법사에서 이전 실습에서 생성한 빌드 파이프라인을 소스로 선택하고 Add를 클릭한다.

 

 

5. View stage tasks.를 선택한다.

 

다음 창에서이 랩의 시작 부분에서 만든 Azure 서비스 연결 및 앱 서비스 이름을 선택한다.

 

+ 아이콘을 클릭하여 파이프라인에 새 태스크를 추가한다. Redgate를 검색하고 Redgate SQL Change Automation: Release 태스크를 선택한다. 

 

이제 파이프라인에 두 개의 태스크가 있다.

 

 

7. Deploy Azure App Service: 이 태스크를 사용하여 생성 된 Azure 앱 서비스에 애플리케이션 패키지를 배포한다. 또한 pul-prod 데이터베이스에 액세스하려면 이 앱 서비스의 연결 문자열을 업데이트해야한다. App Service 태스크에서 XML variable substitution 옵션을 설정한다.

 

XML 변수 대체를 사용하면 웹 패키지 및 XML 매개 변수 파일 (parameters.xml) 내의 구성 파일 (* .config 파일)에서 구성 설정을 수정할 수 있다. 이러한 방식으로 배포 될 환경에 따라 동일한 패키지를 구성 할 수 있다. XML 변환에 대한 자세한 내용을 보려면 여기를 클릭한다.

 

 

8. DefaultConnectionString이라는 이름으로 릴리스 변수를 정의하고 아래와 같이 값을 설정한다.

Server=tcp:{your_sqlservername}.database.windows.net,1433;Initial Catalog=pul-prod;Persist Security Info=False;User ID={your_sqlusername};Password={your_sqlpassword};

 

 

 

9. Redgate SQL Change Automation: Release: 이 태스크는 SQL 변경 자동화 프로젝트를 빌드하여 생성 된 패키지를 대상 데이터베이스에 배포한다. Redgate SQL Change Automation: Release 태스크를 선택하고 OperationDeploy database changes from a build artifact로 선택하고 빌드 아티팩트에서 패키지 경로를 선택한다.

 

 

 

Target database 섹션에서 대상 SQL 서버 세부 정보를 입력한다.

 

 

10. 변경 사항을 Save하고 릴리스를 트리거한다.

 

 

11. 릴리스가 성공하면 Azure Portal로 이동한다. 배포 된 애플리케이션을 보기 위해 만든 앱을 선택하고 찾아 본다. 

애플리케이션에 반영되는 새로운 변경 사항을 볼 수 있어야한다.

 

Brakes 카테고리를 선택하면 업데이트 된 가격도 볼 수 있다. 즉, 데이터베이스 변경 사항도 애플리케이션과 함께 프로덕션 데이터베이스로 업데이트된다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함