2008-09-28 5 views
1

스택 오버플로에 대한 질문을 통해 방금 탐색 중이 었으며 app_data 폴더에 mdf 파일을 복사하고 연결 문자열을 수정하여 데이터베이스를 배포 할 것을 제안하는 게시물을 보았습니다. .ASP .NET 웹 사이트에 대한 데이터베이스 배포

일부 사람들은 개발 중에 app_code에서 mdf 파일을 만들지 만 실제로 사용하려면 데이터베이스를 배포하기위한 실용적인 방법인가요?

내가 평소에 개발하는 동안 내 자체 SQL 스크립트 파일을 작성하여 데이터베이스를 빌드하고 로컬 SQL 서버에서 실행하는 것이 좋습니다. 사이트가 곧바로 실제 사이트로 이동하면 대상 서버에서 스크립트를 실행하고 내 사이트를 데이터베이스와 통신하도록 설정합니다. 솔직히 말해서 나는 데이터베이스를 저장하기 위해 app_code 폴더를 결코 사용하지 않았다. 나는 보통 데이터 액세스 계층 로직을 저장하기 위해 그것을 사용한다.

나는 여기서 잘못된 것을하고 있는가? 데이터베이스를 저장하기 위해 app_data 폴더를 활용하는 것이 좋습니다. 이 방법으로 볼 수있는 한 가지 문제점은 배포가 느려지 게된다는 것입니다. mdf 파일을 인터넷을 통해 전송하는 것은 확실히 내 sql 스크립트 파일을 실행하는 것보다 훨씬 느립니다. 이 문제에 대한 귀하의 생각과 경험을 기대합니다. 건배.

답변

2

저는 개인적으로 데이터베이스를 배포하는 방법을 선호합니다. 일반적으로 웹과 DBServer가 하나의 시스템 (보안, 유지 관리 등)이 아니어야하며 app_code 폴더를 사용하여 데이터베이스를 보유해야합니다 조금 신중하게 보인다.

1

또 다른 단점은 MDF 파일 배포가 처음으로 작동한다는 것입니다. 일단 당신이 살아 있고 자료를 지킬 필요가있을 때 그것은 부적당 할 것이다.

1

app_data 배포 시나리오는 고유 한 데이터베이스 서버가없는 웹 사이트에 유용합니다 (많은 무료/저렴한 호스트를 사용하면이 작업을 수행 할 수 있습니다).

이것은 작은 클래식 ASP 웹 사이트에 대한 데이터베이스로 액세스를 사용하는 이전 방법과 이론상 유사합니다.

0

제 경험상 모범 사례는 빌드 프로세스 (일종의 자동화 또는 언급 한 스크립트)를 사용하는 것과 관련이 있습니다. 그런 다음 데이터베이스를 다음과 같이 나눕니다. 1) 일회성 이벤트 - 일반적으로 데이터베이스를 한 번 작성합니다. 데이터를 한 번 삽입하거나 초기 배치 할 수 있습니다. 스키마 변경 - 빌드 프로세스 외부에서 처리됩니다. 2) 저장 프로 시저, 사용자 기능 및 기타 반복 가능한 이벤트 - 빌드 프로세스에서 처리합니다.

빌드 프로세스는 코드를 배치 할 때 데이터베이스 구성을 전개합니다.

저장 프로 시저 등은 존재하는 경우 먼저 삭제 된 다음 다시 만들어 지도록 작성됩니다.

이러한 스크립트는 mdf가 아닌 코드 저장소에 저장됩니다. 이제는 버전 관리, 히스토리, 빌드 프로세스 제어 등을 할 수 있습니다. 폴더에 관해서는 핵심 데이터베이스 구성을위한 별도의 프로젝트 폴더를 만듭니다. 이는 "코드"와 다르기 때문에 이와 같이 처리해야합니다. 하지만 그들은 아마도 당신의 솔루션의 일부가되어야합니다.

0

실제로 DB 배포는 사이트 도구, 대량 탈 적용 등에 유용 할 수 있습니다. db가 포함 된 premade 응용 프로그램을 배포하는 것은 간단한 프로세스 일 수 있습니다. 이 업데이트의 연속 버전이 업데이트되면 업그레이드가 필요한지 알 수 있습니다. 그럴 경우 로컬 DB를 업데이트하는 스크립트를 실행하십시오. 그렇지 않으면 새 데이터베이스에서 복사하십시오. 특정 제한된 시나리오를 단순화 할 수 있습니다.

관련 문제