【iDempiere Lab】202405141359_IDEMPIERE-5598のマイグレーションスクリプトのエラー対応

JPiereをバージョン13にバージョンアップするためにiDempiereコミュニティーから提供されているマイグレーションスクリプト202405141359_IDEMPIERE-5598.sqlを適用するとエラーになるので、そのエラー原因を調査して対応策を検討しています。

エラーログ

Windows環境だと下記のフォルダにログが入っています。

202405141359_IDEMPIERE-5598.out
テキスト文書 17.3 KB

903行目

ERROR:  duplicate key value violates unique constraint "ad_column_name"

DETAIL:  Key (ad_table_id, upper(columnname::text))=(226, C_TAX_ID) already exists.

STATEMENT:  INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,IsHtml,IsPartitionKey) VALUES (217011,0,'Tax','Tax identifier','The Tax indicates the type of tax used in document line.',226,'C_Tax_ID',22,'N','N','N','N','N',0,'N',19,0,0,'Y',TO_TIMESTAMP('2024-12-26 15:30:33','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-12-26 15:30:33','YYYY-MM-DD HH24:MI:SS'),100,213,'Y','N','D','N','N','N','Y','d8043f0d-fce6-4a5d-acf8-2687a43087e4','Y',0,'N','N','N','N')

;

このエラーはGL_JournalLineテーブル(AD_Table_ID=226)にC_Tax_IDカラムが既に存在しているというエラーです。【JPIERE-0544(v9)】振替仕訳伝票での消費税の自動計算でJPiereとして、GL_JournalLineテーブルにC_Tax_IDカラムを既に登録していたため発生しているエラーです。

アプリケーション辞書のテーブルとカラムの設定で、GL_JournalLineテーブルにC_Tax_IDカラムのレコードをインサートしようとしてエラーになっています。

 

908行目

ERROR:  column "c_tax_id" of relation "gl_journalline" already exists

STATEMENT:  ALTER TABLE GL_JournalLine ADD COLUMN C_Tax_ID NUMERIC(10) DEFAULT NULL 

;

このエラーもGL_JournalLineテーブル(AD_Table_ID=226)にC_Tax_IDカラムが既に存在しているというエラーに付随して発生しているエラーです。PostgreSQLにカラムを追加しようとしてエラーになっています。

 

911行目

ERROR:  constraint "ctax_gljournalline" for relation "gl_journalline" already exists

STATEMENT:  ALTER TABLE GL_JournalLine ADD CONSTRAINT CTax_GLJournalLine FOREIGN KEY (C_Tax_ID) REFERENCES c_tax(c_tax_id) DEFERRABLE INITIALLY DEFERRED

;

このエラーもGL_JournalLineテーブル(AD_Table_ID=226)にC_Tax_IDカラムが既に存在しているというエラーに付随して発生しているエラーです。PostgreSQLに外部キー制約を設定しようとして既に登録されている旨のエラーになっています。

 

914行目

ERROR:  insert or update on table "ad_field" violates foreign key constraint "ad_column_field"

DETAIL:  Key (ad_column_id)=(217011) is not present in table "ad_column".

STATEMENT:  INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (208673,'Tax','Tax identifier','The Tax indicates the type of tax used in document line.',200008,217011,'Y',22,420,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-12-26 15:30:48','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-12-26 15:30:48','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','c08b3b42-318e-4ea2-9b4b-593937839b53','Y',440,2)

;

このエラーもGL_JournalLineテーブル(AD_Table_ID=226)にC_Tax_IDカラムが既に存在しているというエラーに付随して発生しているエラーです。振替仕訳伝票明細タブ(AD_Tab_ID=200008)に税金情報フィールドを追加しようとしてエラーになっています。

 

935行目

ERROR:  insert or update on table "ad_field" violates foreign key constraint "ad_column_field"

DETAIL:  Key (ad_column_id)=(217011) is not present in table "ad_column".

STATEMENT:  INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (208678,'Tax','Tax identifier','The Tax indicates the type of tax used in document line.',161,217011,'Y',22,440,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-12-26 15:31:57','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-12-26 15:31:57','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','2ede098a-77e5-4ffe-acf6-f1fa10a2c4bf','Y',440,2)

;

このエラーもGL_JournalLineテーブル(AD_Table_ID=226)にC_Tax_IDカラムが既に存在しているというエラーに付随して発生しているエラーです。まとめ振替仕訳伝票ウィンドウの振替仕訳伝票明細タブ(AD_Tab_ID=161)に税金情報フィールドを追加しようとしてエラーになっています。

 

1025行目

ERROR: duplicate key value violates unique constraint "ad_field_column"

DETAIL: Key (ad_tab_id, ad_column_id)=(242, 15465) already exists.

STATEMENT: INSERT INTO AD_Field (AD_Field_ID,Name,Description,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (208694,'Project Phase','Phase of a Project',242,15465,'Y',10,470,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2025-02-17 15:04:01','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2025-02-17 15:04:01','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','4d71ce65-2703-4cb7-a792-c4758a624407','Y',440,2) ;

仕訳帳ウィンドウの仕訳帳タブ(AD_Tab_ID=242)に、C_ProjectPhase_IDカラム(AD_Column_ID=15465)のフィールドが既に登録されている旨のエラーになっています。

 

1029行目

ERROR:  duplicate key value violates unique constraint "ad_field_column"

DETAIL:  Key (ad_tab_id, ad_column_id)=(242, 15466) already exists.

STATEMENT:  INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (208695,'Project Task','Actual Project Task in a Phase','A Project Task in a Project Phase represents the actual work.',242,15466,'Y',10,480,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2025-02-17 15:04:02','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2025-02-17 15:04:02','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','e88487ce-9443-4cc7-acf4-b0f6860b4e59','Y',450,2)

;

仕訳帳ウィンドウの仕訳帳タブ(AD_Tab_ID=242)に、C_ProjectTask_IDカラム(AD_Column_ID=15466)のフィールドが既に登録されている旨のエラーになっています。

修正案

エラーが再現されることを確認した後で下記のSQLを実行して下さい。

--Line:903

UPDATE adempiere.ad_column

SET ad_column_id=217011, ad_column_uu='d8043f0d-fce6-4a5d-acf8-2687a43087e4',EntityType='D'

WHERE  AD_Table_ID=226 and ColumnName='C_Tax_ID';

 

UPDATE adempiere.ad_column_Trl

SET ad_column_id=217011

WHERE  ad_column_id=1009591;

 

--Line:914

INSERT INTO adempiere.AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (208673,'Tax','Tax identifier','The Tax indicates the type of tax used in document line.',200008,217011,'Y',22,420,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-12-26 15:30:48','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-12-26 15:30:48','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','c08b3b42-318e-4ea2-9b4b-593937839b53','Y',440,2);

 

--Line:935

INSERT INTO adempiere.AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (208678,'Tax','Tax identifier','The Tax indicates the type of tax used in document line.',161,217011,'Y',22,440,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-12-26 15:31:57','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-12-26 15:31:57','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','2ede098a-77e5-4ffe-acf6-f1fa10a2c4bf','Y',440,2);

 

--For JPiere add on fileds

UPDATE adempiere.ad_field

SET ad_column_id=217011

WHERE  ad_column_id=1009591 and EntityType='JP';

 

--Line:1025

UPDATE adempiere.ad_field

SET ad_field_id=208694, ad_field_uu='4d71ce65-2703-4cb7-a792-c4758a624407',EntityType='D'

WHERE  ad_field_id=1016682;

UPDATE adempiere.ad_field_Trl

SET ad_field_id=208694

WHERE  ad_field_id=1016682;

 

--Line:1029

UPDATE adempiere.ad_field

SET ad_field_id=208695, ad_field_uu='e88487ce-9443-4cc7-acf4-b0f6860b4e59',EntityType='D'

WHERE  ad_field_id=1016683;

UPDATE adempiere.ad_field_Trl

SET ad_field_id=208695

WHERE  ad_field_id=1016683;

commit;

JPiere13_MigrationScript.sql
テキスト文書 2.2 KB