> 管理機能 > 追加テーブルのリストア、NULLの扱い |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
kazz_oga |
投稿日時: 2017/1/1 10:01
対応状況: −−−
|
一人前 登録日: 2013/8/5 居住地: 東京都北区赤羽西 投稿: 144 |
追加テーブルのリストア、NULLの扱い カテゴリが間違ってってごめんなさい。2.13.2の機能です。
当方で追加したテーブルのEC-CUBEの管理機能をつかったリストアができません。どうも、NULLの扱いでエラーが発生しているようです。 リストア時のNULLの扱いの指定方法がわかれば、直せるような感じですが、 浅学でわかりません。ご教授ください。 ーーー 以下、エラーメッセージ ーーーー Fatal error(E_USER_ERROR): DB処理でエラーが発生しました。 SQL: [INSERT INTO dtb_article(seq,article_id,article_seq,indent_level,title_number_flg,title,description,image_attr,image,sns_image,keyword,summry,html_name,del_flg) SELECT $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14] PlaceHolder: [array ( 0 => '3', <途中略> 7 => '', 8 => '', 9 => '', 10 => '', 11 => '', 12 => '', 13 => '0', )] MDB2 Error: null value violates not-null constraint _doQuery: [Error message: Could not execute statement] [Last executed query: EXECUTE mdb2_statement_pgsql_12b32aad09f2af6d5565dd274b3931a255a046a14c ('3', '2', '10', '0', '0', <途中略> ', NULL, NULL, NULL, NULL, NULL, NULL, '0')] [Native message: ERROR: null value in column "image_attr" violates not-null constraint DETAIL: Failing row contains (3, 2, 10, 0, 0, <途中略>..., null, null, null, null, null, null, 0).] on [/Applications/XAMPP/xamppfiles/htdocs/eccube-2.13.2cust-gift/data/class/SC_Query.php(1087)] from ::1 login_id = inechoumaster(0)[b46os13n4bkikkoa0t2b4e9v14] /Applications/XAMPP/xamppfiles/htdocs/eccube-2.13.2cust-gift/html/admin/system/bkup.php(29): LC_Page_Admin_System_Bkup_Ex->process /Applications/XAMPP/xamppfiles/htdocs/eccube-2.13.2cust-gift/data/class_extends/page_extends/admin/system/LC_Page_Admin_System_Bkup_Ex.php(54): LC_Page_Admin_System_Bkup->process /Applications/XAMPP/xamppfiles/htdocs/eccube-2.13.2cust-gift/data/class/pages/admin/system/LC_Page_Admin_System_Bkup.php(72): LC_Page_Admin_System_Bkup->action /Applications/XAMPP/xamppfiles/htdocs/eccube-2.13.2cust-gift/data/class/pages/admin/system/LC_Page_Admin_System_Bkup.php(150): LC_Page_Admin_System_Bkup->lfRestore /Applications/XAMPP/xamppfiles/htdocs/eccube-2.13.2cust-gift/data/class/pages/admin/system/LC_Page_Admin_System_Bkup.php(487): LC_Page_Admin_System_Bkup->lfExeInsertSQL /Applications/XAMPP/xamppfiles/htdocs/eccube-2.13.2cust-gift/data/class/pages/admin/system/LC_Page_Admin_System_Bkup.php(572): SC_Query->insert /Applications/XAMPP/xamppfiles/htdocs/eccube-2.13.2cust-gift/data/class/SC_Query.php(567): SC_Query->query /Applications/XAMPP/xamppfiles/htdocs/eccube-2.13.2cust-gift/data/class/SC_Query.php(865): SC_Query->execute /Applications/XAMPP/xamppfiles/htdocs/eccube-2.13.2cust-gift/data/class/SC_Query.php(1048): SC_Query->error /Applications/XAMPP/xamppfiles/htdocs/eccube-2.13.2cust-gift/data/class/SC_Query.php(1087): trigger_error 2017/01/01 09:27:39 /eccube-2.13.2cust-gift/html/admin/system/bkup.php Fatal error(E_USER_ERROR): DB処理でエラーが発生しました。 ーーーーーーーーーーーーーーーーーーーーー 動作環境 EC-CUBE 2.13.2 DB PostgreSQL 9.2.8 OSX 10.10.5(開発環境) |
kazz_oga |
投稿日時: 2017/1/3 12:06
対応状況: −−−
|
一人前 登録日: 2013/8/5 居住地: 東京都北区赤羽西 投稿: 144 |
Re: 追加テーブルのリストア、NULLの扱い <自己レスです>
Not NULLで定義した項目に空文字が入っており、リストアの処理で空文字がNULLに変換され、このエラーが発生したように見受けられます。 空文字をNULLに変換しない指定方法が分かれば、解決するかもしれない。 |
kazz_oga |
投稿日時: 2017/1/4 11:41
対応状況: −−−
|
一人前 登録日: 2013/8/5 居住地: 東京都北区赤羽西 投稿: 144 |
Re: 追加テーブルのリストア、NULLの扱い <自己レスです>
解決しました。 MDB2の処理で空文字をNULLに置き換えるオプションがあるようです。 次の修正で回避できました。 <SC_Query.php> // オプション $options = array( // 持続的接続 'persistent' => PEAR_DB_PERSISTENT, // Debugモード 'debug' => PEAR_DB_DEBUG, // バッファリング true にするとメモリが解放されない。 // 連続クエリ実行時に問題が生じる。 'result_buffering' => false, 追加 // Kazz add for 空文字, 20170104 追加 'portability' => MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_EMPTY_TO_NULL,#←空文字列がNULLになるのを回避 ); この空文字⇨NULL変換は回避しました。 しかし、その先で異なる問題が発生しています。 別案件として投稿します。 |
kazz_oga |
投稿日時: 2017/1/15 10:48
対応状況: 解決済
|
一人前 登録日: 2013/8/5 居住地: 東京都北区赤羽西 投稿: 144 |
Re: 追加テーブルのリストア、NULLの扱い 上記対策は副作用があることが判明しました。
'portability'での指定はMDB2_PORTABILITY_やってはいけません。 【副作用】 管理機能でのリストア時にintegerフィールドが空文字であったとき invaridとなる 【本件:NOT NULLフィールドでの空文字の扱い】 NOT NULL指定をやめるか、空文字の扱いをやめる。 EC-CUBEのバックアップ、リストアはMDB2_PORTABILITY指定を前提にしていないので、この指定に頼るカスタマイズは避けるべきが結論です。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |