2013-04-10 2 views
0

을 자극하는 TEST에서 홍보 : 테스트 DB 오차드 내가 현재 3 개 환경이

  • PROD에 연결 - - 테스트 DB
  • TEST에 연결 (VS2012 및 소스 코드)

    1. DEV를 - 이는 생산성의 (등 내용, 위젯, 이미 추가) 웹 사이트는 현재 DEV 및 TEST에서 잘 작동

    dB에 연결합니다.

    PROD로 승격을 시도했을 때 웹 사이트가 제대로 작동하는 것 같습니다 (모든 페이지, 탐색 할 수 있음) - 그러나 전혀 편집 할 수 없습니다. 나는 그것을 확인할 때 성공을 말할 것입니다,하지만 - 나는 PROD에 모양 추적 모듈을 해제하려고 할 때 또한

    "An unhandled exception has occurred and the request was terminated. Please refresh the page. If the error persists, go back 
    
    could not insert: [Orchard.ContentManagement.Records.ContentItemVersionRecord][SQL: INSERT INTO Orchard_Framework_ContentItemVersionRecord (Number, Published, Latest, Data, ContentItemRecord_id) VALUES (?, ?, ?, ?, ?); select SCOPE_IDENTITY()] 
    
    NHibernate.Exceptions.GenericADOException: could not insert: [Orchard.ContentManagement.Records.ContentItemVersionRecord][SQL: INSERT INTO Orchard_Framework_ContentItemVersionRecord (Number, Published, Latest, Data, ContentItemRecord_id) VALUES (?, ?, ?, ?, ?); select SCOPE_IDENTITY()] ---> System.Data.SqlClient.SqlException: Cannot insert the value NULL into column 'Id', table 'Orchard.dbo.Orchard_Framework_ContentItemVersionRecord'; column does not allow nulls. INSERT fails." 
    

    , 예를 들면 다음과 같습니다

    내가이 오류를 얻을 것입니다 새 페이지/편집 내용을 추가 할 때 실제로 모듈을 사용 중지하지 않았습니다. 내가 PROD에 게시하는 방법

    은 다음과 같습니다

    1. 사용 DEV에 프로젝트를 빌드 build.cmd "컴파일, 패키지"
    2. 복사 PROD에 빌드 \ 스테이지의 내용을합니다 (App_Data 폴더 만 나는 웹 사이트를 열 때 _marker.txt 한 파일)
    3. 가 PROD에 등
    4. 열기 사이트 이름을 입력하라고 요청 PROD의 웹 사이트, 데이터베이스 세부 이제
    5. 빈 데이터베이스를 만듭니다 - 그것은 표시 기본 " "TheThemeMachine"사이트 - 괜찮습니다
    6. 그런 다음 SQL Server 내보내기를 통해 TEST에서 데이터베이스를 복사합니다 (SQL Server 내보내기를 통해)
    7. 이제 웹 사이트를 열면 내 웹 사이트가 모든 페이지 등으로 잘 실행됩니다. 위 내용을 편집하거나 새 페이지를 추가 할 때 예외가 발생했습니다.

    어떻게해야합니까?

  • +0

    6 단계에 대해 자세히 설명해 주실 수 있습니까? 신분 확인 열과 같은 중요한 메타 데이터를 놓친 것처럼 보입니다. –

    +0

    데이터베이스를 백업하고 복원하는 대신 SQL Server 내보내기 데이터 (SQl 서버 내에서 - 데이터베이스를 마우스 오른쪽 단추로 - 모든 작업 - 데이터 내보내기 - 모든 테이블을 선택하여 마법사 따라 가기)를 사용하여 TEST에서 PROD로 모든 테이블을 복사합니다. – friend

    +0

    아마도 ID 등을 전송하지 않았을 것입니다. 내보내기 매개 변수를 확인하십시오. 또한 해당 테이블에서 ID 컬럼을 찾아 내 가설이 올바른지 확인할 수 있습니다. 내가 옳다면, 당신은 아무 것도 없어. –

    답변

    1

    이것은 테이블에 적절한 ID가 정의되어 있지 않음을 의미합니다. 모든 스키마 정보를 가져 오지 않고 내보내고 가져온 사실로 인해 테이블에 대한 많은 메타 데이터도 누락되었을 수 있습니다. 백업/복원은 다른 방법이 있지만 데이터베이스를 옮기는보다 안전한 방법입니다. 다른 방법으로는 동일한 데이터베이스, 스키마 + 데이터를 보장해야하기 때문입니다.