사용자가 생성한 컨텐츠로 데이터베이스 배포 자동화(a CMS)
저희 팀은 지난 몇 년간 CMS에 점점 더 빠져들고 있습니다.우리는 또한 지속적인 통합에 점점 더 빠져들고 있습니다.그 둘을 화해시키는 것은 어렵다는 것이 증명되었습니다.더 나쁜 것은 LAMP와.NET 사이트를 통해 스크립트가 두 가지 모두에 적합합니다.
우리는 각 사이트의 로컬, 통합, 스테이징 및 프로덕션을 위한 네 가지 환경을 갖추고 있습니다.콘텐츠 입력 및 파일 업로드는 제작 사이트에서 정기적으로 이루어집니다.개발은 분명히 현지에서 시작되어 점차 발전합니다.
빌드 서버에서 사용자가 생성한 콘텐츠를 덮어쓰지 않고 개발 환경의 데이터 및 스키마 업데이트를 프로덕션 환경에 자동으로 적용할 수 있는 방법이나 기법에는 어떤 것이 있습니까?반대로, 사용자가 생성한 데이터를 개발 환경에 자동으로 끌어들이는 방법은 무엇입니까?
당신의 데이터베이스에는 당신이 걱정해야 할 세 가지 종류의 것들이 있을 것입니다.
1) 스키마, DDL에 정의될 수 있습니다. 2) 정적 또는 조회 데이터, DML에 정의될 수 있습니다. 3) 동적(또는 사용자) 데이터, DML에 정의될 수도 있습니다.
일반적으로 (1)과 (2)를 변경하는 경우 상호 의존하는 코드를 사용하여 프로덕션으로 이동해야 합니다. (3)은 절대로 이동하지 않아야 하지만, 해당 시점에 프로덕션 환경과 동기화되어 있으면 개발 환경으로 복사할 수 있습니다.
물론 그것보다 훨씬 더 복잡합니다.(1)을(를) 실행하려면 기존 스키마/DDL을 특정 변경 문으로 변환해야 할 수 있으며, 데이터 유형 또는 위치가 변경되는 경우 데이터 조작이 필요할 수도 있습니다.(2)를 시작하려면 코드 빌드와 동기화해야 하므로 복잡한 환경에서 어려워질 수 있습니다.
많은 도구가 있으며 자동화가 필요하다면 도구에 대해 잘 아는 사람의 조언이 필요할 것입니다.
저는 모든 스키마 변경 사항이 SQL 빌드 스크립트에 반영되고, 필요한 변환을 수행하는 데 필요한 모든 SQL이 포함된 변경 SQL 스크립트에 추가되는 매우 간단한 스키마를 사용합니다.이것은 저에게 잘 작동하지만 제 시나리오는 매우 간단해서 (1명, 서버 1대) 전형적이지 않습니다.
그러나 모든 성공의 핵심은 변경이 이루어지는 시점에 변경에 필요한 작업을 정의하는 것입니다.개발 DB만 변경한 다음 배포 시점에 업데이트 적용을 수행하는 순진한 방법은 재앙입니다.
A) 가장 좋은 것은 우선순위 시스템을 사용하는 것입니다.내용이 "기본값"이고 사용자 내용이 "기본값"인 경우, 사용자 내용이 이를 " 덮어씁니다.그리고 이 콘텐츠는 두 곳에 있습니다.따라서 어떤 종류의 병합 프로세스도 처리할 필요 없이 업데이트를 수행하는 것입니다.데이터가 다른 디렉토리에 있을 수도 있고, DB에 다른 플래그가 있을 수도 있습니다.이것의 단점은 링크가 생성될 때 실제 매핑을 하지 않는 한 기본적인 즉시 서버 기능을 사용하여 데이터를 서버화할 수 없다는 것입니다.
즉, /site/images/icon.png를 가로채서 /site/images/default/icon.png 또는 /site/images/client/icon.png를 서비스할 수 있습니다. 또는 페이지를 작성할 때 서버에서 직접 서비스할 수 있도록 확인하고 적절한 URL을 전송할 수 있습니다.
두 번째로, 고객 데이터를 언제 사용할 수 있는지에 관해서는 법적인 IP 문제에 가깝기 때문에 고객이 a) 의지가 있는지, b) 콘텐츠를 고객과 공유할 수 있는지 여부를 고객과 논의해야 합니다.그 후 기술은 간단합니다.
언급URL : https://stackoverflow.com/questions/7325827/automated-database-deployments-with-user-generated-content-a-la-cmses
'programing' 카테고리의 다른 글
카르마를 사용하여 특정 하위 폴더 내의 파일을 제외하고 패턴과 일치하는 모든 파일을 제외하려면 어떻게 해야 합니까? (0) | 2023.11.02 |
---|---|
열거 가능은 무엇을 의미합니까? (0) | 2023.11.02 |
ODP.net 데이터 집합 채우기 시 Oracle Decimal Number 정밀도 문제.예외:산술 연산으로 오버플로가 발생했습니다. (0) | 2023.11.02 |
원격으로 실행할 때 모든 권한 허용 액세스 거부 예외 발생 (0) | 2023.10.28 |
워드프레스 3.4와 함께 페이지 템플릿이 사라졌습니다. (0) | 2023.10.28 |