Orchardcms 从试验到生产的果园推广
我目前有3个环境:Orchardcms 从试验到生产的果园推广,orchardcms,orchardcms-1.6,Orchardcms,Orchardcms 1.6,我目前有3个环境: DEV(带VS2012和源代码)-连接到测试数据库 测试-它连接到测试数据库 PROD-它连接到PROD db 该网站目前在开发和测试方面运行良好(已经添加了内容、小部件等) 当我尝试推广到PROD时,网站似乎运行良好(所有页面都在那里,我可以导航,等等)-但是,我根本无法编辑 例如,在添加新页面/编辑内容时,我会出现以下错误: "An unhandled exception has occurred and the request was terminated. Pleas
"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的方式:
我该怎么做?这意味着您的表没有定义正确的标识。由于您在导出和导入时没有获取所有模式信息,因此您可能还缺少很多关于表的元数据。备份/恢复是移动数据库的一种更安全的方法,尽管还有其他方法,因为可以保证在另一端有相同的数据库,即schema+数据。关于步骤6,您能更具体一些吗?似乎您遗漏了一些重要的元数据,例如标识列。我使用SQL Server导出数据(在SQL Server中-右键单击数据库-所有任务-导出数据-然后按照向导选择所有表)将所有表从测试复制到PRODRight,而不是备份和还原数据库,这可能不会传输标识,等等。检查您的导出参数。您还可以通过在这些表上查找标识列来验证我的假设是否正确。如果我是对的,您没有。谢谢Bertrand,是的,我可以确认它在PROD中丢失了标识。这是否意味着我的上述步骤是正确的,只要我确保在上面的步骤6中执行备份和恢复,就可以工作?备份和恢复更安全,是的,尽管这不是唯一的方法。我将在下面复制这个答案,因为这似乎是问题所在。