私は現在3つの環境を持っています:
- DEV (VS2012 とソース コードを使用) - TEST db に接続します
- TEST - TEST db に接続します
- PROD - PROD db に接続します
Web サイトは現在、DEV と TEST で正常に動作しています (コンテンツ、ウィジェットなどが既に追加されています)。
PROD にプロモートしようとすると、Web サイトは正常に動作しているように見えます (すべてのページがそこにあり、ナビゲートできるなど) - ただし、編集がまったくできません。
たとえば、新しいページを追加したりコンテンツを編集したりすると、次のエラーが発生します。
"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 に公開する方法です。
- build.cmd "compile;package" を使用して、DEV でプロジェクトをビルドします。
- build\Stage の内容を PROD にコピーします (App_Data フォルダーには _marker.txt ファイルしかありません)。
- PROD で空のデータベースを作成する
- PROD で Web サイトを開くと、サイト名、データベースの詳細などを入力するよう求められます。
- さて、ウェブサイトを開くと、デフォルトの「ThemeMachine」サイトが表示されますが、これで問題ありません
- 次に、データベースを TEST から PROD に (SQL Server エクスポート経由で) コピーします。
- さて、ウェブサイトを開くと、すべてのページなどでウェブサイトが正常に動作するようになりましたが、コンテンツを編集したり、新しいページを追加しようとすると、例外を超えてしまいました
どうすればいいですか?