From: Moritz Bunkus Date: Thu, 11 Nov 2010 16:49:46 +0000 (+0100) Subject: acc_trans enthält bereits eine Primärschlüsselspalte X-Git-Tag: release-2.6.2beta1~40 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=68525bb179b59bf35362e7a9e482bc17ebfd32c8;p=kivitendo-erp.git acc_trans enthält bereits eine Primärschlüsselspalte Der war nur bisher noch nicht als solcher markiert. Hinzu kommt, dass RDBO acc_trans_id beim Anlegen von Einträgen in acc_trans nicht automatisch befüllt; genauer: explizit auf NULL setzt. Das wiederum verwirrt andere Bereiche von Lx-Office. Weiterhin gibt es einige Queries, die nicht darauf vorbereitet sind, dass acc_trans plötzlich eine Spalte namens "id" enthält (z.B. Reporting). --- diff --git a/SL/DB/MetaSetup/AccTransaction.pm b/SL/DB/MetaSetup/AccTransaction.pm index 9f6e6b45e..649b4647f 100644 --- a/SL/DB/MetaSetup/AccTransaction.pm +++ b/SL/DB/MetaSetup/AccTransaction.pm @@ -10,7 +10,7 @@ __PACKAGE__->meta->setup( table => 'acc_trans', columns => [ - acc_trans_id => { type => 'bigint', sequence => 'acc_trans_id_seq' }, + acc_trans_id => { type => 'bigint', not_null => 1, sequence => 'acc_trans_id_seq' }, trans_id => { type => 'integer', not_null => 1 }, chart_id => { type => 'integer', not_null => 1 }, amount => { type => 'numeric', precision => 5, scale => 15 }, @@ -26,10 +26,9 @@ __PACKAGE__->meta->setup( taxkey => { type => 'integer' }, itime => { type => 'timestamp', default => 'now()' }, mtime => { type => 'timestamp' }, - id => { type => 'integer', not_null => 1, sequence => 'acc_trans_id_seq1' }, ], - primary_key_columns => [ 'id' ], + primary_key_columns => [ 'acc_trans_id' ], allow_inline_column_values => 1, diff --git a/sql/Pg-upgrade2/schema_normalization_3.sql b/sql/Pg-upgrade2/schema_normalization_3.sql new file mode 100644 index 000000000..528fc8f1b --- /dev/null +++ b/sql/Pg-upgrade2/schema_normalization_3.sql @@ -0,0 +1,6 @@ +-- @tag: schema_normalization_3 +-- @description: Datenbankschema Normalisierungen Teil 3 +-- @depends: schema_normalization_2 + +ALTER TABLE acc_trans DROP COLUMN id; +ALTER TABLE acc_trans ADD PRIMARY KEY (acc_trans_id);