バージョン選択

フォーラム

メニュー

オンライン状況

52 人のユーザが現在オンラインです。 (44 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 52
もっと...

サイト内検索

 > 管理機能 > 追加テーブルのリストア、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指定を前提にしていないので、この指定に頼るカスタマイズは避けるべきが結論です。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,710名です
総投稿数は109,948件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1285
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.