2009-11-24 3 views
1

우리는 여러 클라이언트에게 데비안 패키지로 제공되는 webapp을 만들고 있습니다. 각 클라이언트는 자신의 서버를 실행합니다. 그러나 업데이트와 지원은 우리에 의해 수행됩니다. 우리는 제품의 일반 릴리스를 깨끗한 버전 번호로 만듭니다. 대부분의 사용자는 (Puppet에 의해) 자동 업데이트를 받고, 다른 사용자는 자동 업데이트를받지 못합니다.웹 응용 프로그램 : 응용 프로그램의 버전 추적을 데이터베이스에 유지 하시겠습니까?

우리는 응용 프로그램의 버전을 추적하고 싶습니다 (사용자가 "약"섹션에서 버전을 확인하고 사용자를보다 정확하게 도와 줄 수 있도록하기 위해).

우리는 데이터베이스에 코드 버전과베이스 버전을 저장하고 정보를 자동으로 최신 상태로 유지할 계획입니다.

그게 좋은 생각인가요?

다른 대안은 파일입니다.

EDIT : 코드와 데이터베이스 스키마가 함께 업데이트됩니다. (버전 x.y.z로 업데이트하면 코드와 데이터베이스 모두 x.y.z로 이동합니다)

답변

5

테이블을 사용하여 this post에 설명 된대로 스키마 변경 사항을 추적하는 것은 필자가 따라야 할 권장 사항입니다.

응용 프로그램의 경우 데이터베이스와 별도로 배송되는 경우 (명확하지 않음) 패키지에 파일을 포함하므로 데이터베이스를 사용하여 웹 응용 프로그램의 버전을 저장하지 않아도됩니다. .

그렇다면 응용 프로그램과 데이터베이스 버전이 모두 동기화되어 있으면 데이터베이스에 저장된 정보 만 사용하면됩니다.

0

하나의 접근법이나 다른 접근법으로 갈 이유가 없다고 가정 할 때 데이터베이스에 보관할 것이라고 생각합니다.

1

일반적으로 DB 버전과 응용 프로그램 버전이 둘 다 있습니다. 여기서 문제는 "개인"이 데이터베이스라는 것입니다. 데이터베이스가 응용 프로그램에 대해 "개인"이고 사용자가 스키마를 수정하지 않으면 초기 솔루션이 정상입니다. 필자의 경험에 비추어 볼 때 몇 년 동안 축적 된 데이터가 비공개로되는 것을 막기 위해서는 사용자가 테이블이나 2를 추가하고보고 도구를 사용하여 데이터에 액세스해야한다는 의미입니다. 그 시점에서 데이터베이스에 더 이상 응용 프로그램에 의해 독점적으로 사용되지 않습니다. 고려해야 할

UPDATE

한 가지 더 사용자 (응용 프로그램)는이 DB에 연결할 수있는 지원을 요구하지. 이 경우에는 버전 등을 파일 시스템에 저장하는 것이 좋습니다.

+0

데이터베이스가 완전히 비공개입니다. 사용자는 데이터베이스가 존재한다는 것을 알지 못합니다. 그는 존경심을 갖지 않으며 결코 가질 수 없습니다. –

0

두 곳 모두에 넣을 수 있습니다. 그런 다음 about 함수를 실행할 때 둘 다 동일하다는 것을 신속하게 확인하고 그렇지 않은 경우 버전 불일치에 대한 추가 정보를 표시 할 수 있습니다. 그들이 동일하면 그 중 하나만 표시하면됩니다.

나는 일반적으로 항상 좋은 생각과 함께 "그들이 할 수 있기 때문에"지금은 수비를 다루는 사용자가 주변에 수동으로 복사 할 디렉토리로 이전 버전으로 되돌릴 데이터베이스처럼 "똑똑"일을 할 수 발견했습니다.

관련 문제