2011-04-27 4 views
0

우리는 데이터를 저장하기 위해 SQL Server가 필요한 데스크톱 (Windows) 응용 프로그램을 만들었습니다. 이제 우리가 데이터베이스 측에서 변경을하면 사용자 응용 프로그램의 데이터베이스를 백업하고 변경 사항을 수정 한 다음 사용자 응용 프로그램으로 다시 복원해야합니다.SQLServer에서 데이터를 가져 오거나 내보내는 유틸리티

우리는 백업 할 코드를 작성했습니다. & 잘 작동하는 응용 프로그램에서 .bak 파일을 복원하십시오.

하지만 이제는 사용자가 데이터 파일을 업로드 할 수있는 온라인 유틸리티를 구축해야합니다. 그런 다음 변경 사항이 적용될 수 있고 복원 할 데이터를 다운로드 할 수 있습니다.

이 기능을 구현하기위한 몇 가지 아이디어를 제안 해주십시오.

추신 : 내가 올바른 것으로 느낀 영역에 질문을 게시했습니다. 적절한 지역으로 변경하십시오 (필요한 경우)

감사합니다!

+0

"변경 사항"은 스키마 변경 또는 데이터 변경을 의미합니까? –

+0

@FreshCode : schema changes –

답변

0

Migrator.NET으로 마이그레이션을 작성하여 스키마를 업데이트하고 스키마 변경 사항을 클라이언트에 대한 실행 가능한 업데이트로 배포하십시오. 여기

Getting Started documentation의 예는 다음과 같습니다

using Migrator.Framework; 
using System.Data; 

namespace DBMigration 
{ 
     [Migration(20080401110402)] 
     public class CreateUserTable_001 : Migration 
     { 
       public void Up() 
       { 
         Database.CreateTable("User", 
           new Column("UserId", DbType.Int32, ColumnProperties.PrimaryKeyWithIdentity), 
           new Column("Username", DbType.AnsiString, 25) 
           ); 
       } 

       public void Down() 
       { 
         Database.RemoveTable("User"); 
       } 
     } 
} 

이 열을 추가/제거하기위한 좋은 래퍼가 있지만 당신이 임의의 SQL을 실행할 수 있습니다.

0

변경 사항을 적용하려면 데이터베이스에서 사용자가 실행할 수있는 스크립트를 제공하거나 설치 프로그램의 일부로 제공하거나 스크립트를 실행할 수있는 간단한 유틸리티가 있어야합니다.

일반적으로 개발자 환경에서 데이터베이스를 변경하면 해당 응용 프로그램에 대한 스크립트를 생성하고 응용 프로그램의 새 버전을 릴리스 할 때까지 유지하십시오.

+0

이것은 클라이언트가 받아 들일 수있는 것이 아닙니다. 이는 클라이언트의 사용자에게 100 개의 스크립트를 실행시키는 것을 의미합니다. –

+0

@Xor 힘, 이것은 각 사용자가 응용 프로그램과 데이터베이스의 사본을 가지고 있음을 의미합니다. 사용자가 새로운 버전의 앱을 어떻게 얻습니까? 그것은 설정의 경우 U 설치 스크립트에서 DB를 업그레이 드를 실행하는 사용자 정의 작업을 가질 수 있습니다. zip (또는 파일 집합)으로 새 버전을 제공하면 업그레이드 논리가 앱 코드에 내장되어야합니다. 예 : 응용 프로그램을 시작할 때 DB 버전 (일부 테이블에서 버전 정보를 유지해야 함)을 확인할 수 있으며 포함 된 스크립트를 실행하여 데이터베이스를 업그레이드 할 수 있습니다. 자동 솔루션이 사용자 경험과 지원 관점에서 훨씬 뛰어나다 고 생각합니다. – VinayC

관련 문제