果园从TEST推广到PROD

时间:2013-04-10 07:10:59

标签: orchardcms orchardcms-1.6

我目前有3种环境:

  1. DEV(带VS2012和源代码) - 连接到TEST db
  2. TEST - 连接到TEST db
  3. PROD - 连接到PROD db
  4. 该网站目前在DEV和TEST上工作正常(已添加内容,小部件等)。

    当我尝试推广到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中禁用形状跟踪模块时 - 它会说成功,但是当我检查它实际上并没有禁用模块时。

    这是我将其发布到PROD的方式:

    1. 使用build.cmd“compile; package”
    2. 在DEV上构建项目
    3. 将build \ Stage的内容复制到PROD(App_Data文件夹只有_marker.txt文件)
    4. 在PROD中创建空白数据库
    5. 在PROD中打开网站,要求我输入网站名称,数据库详细信息等。
    6. 现在,当我打开网站时 - 它显示默认的“TheTheMMachine”网站 - 很好
    7. 然后,我将数据库从TEST复制到PROD(通过SQL Server导出)
    8. 现在,当我打开网站时,我的网站运行正常,包含所有页面等,但在尝试编辑内容或添加新页面时我得到了Exception
    9. 我该怎么做?

1 个答案:

答案 0 :(得分:1)

这意味着您的表没有定义正确的标识。您可能还缺少大量有关表的元数据,因为您导出和导入时没有获取所有架构信息。备份/恢复是一种更安全的移动数据库的方法,虽然还有其他方法,因为保证在另一端有相同的数据库,模式+数据。