Fix: ON DELETE CASCADE is forbidden.

This commit is contained in:
Laurent Destailleur 2014-07-08 21:38:20 +02:00
parent 94cd8debeb
commit 9b6b5feb4f
5 changed files with 15 additions and 9 deletions

View File

@ -1073,7 +1073,6 @@ CREATE TABLE llx_product_batch (
batch varchar(30) DEFAULT NULL,
qty double NOT NULL DEFAULT 0,
import_key varchar(14) DEFAULT NULL,
KEY ix_fk_product_stock (fk_product_stock)
) ENGINE=InnoDB;
CREATE TABLE llx_expeditiondet_batch (
@ -1084,7 +1083,6 @@ CREATE TABLE llx_expeditiondet_batch (
batch varchar(30) DEFAULT NULL,
qty double NOT NULL DEFAULT 0,
fk_origin_stock integer NOT NULL,
KEY ix_fk_expeditiondet (fk_expeditiondet)
) ENGINE=InnoDB;
-- Salary payment in tax module
@ -1108,6 +1106,10 @@ CREATE TABLE llx_payment_salary (
fk_user_modif integer
)ENGINE=innodb;
ALTER TABLE llx_product_batch ADD INDEX ix_fk_product_stock (fk_product_stock);
ALTER TABLE llx_product_batch ADD CONSTRAINT fk_product_batch_fk_product_stock FOREIGN KEY (fk_product_stock) REFERENCES llx_product_stock (rowid);
-- New 1074 : Stock mouvement link to origin
ALTER TABLE llx_stock_mouvement ADD fk_origin integer;
ALTER TABLE llx_stock_mouvement ADD origintype VARCHAR(32);

View File

@ -67,15 +67,15 @@ ALTER TABLE llx_societe ADD COLUMN localtax2_value double(6,3) after localtax2_a
-- Added missing relations of llx_product
-- fk_country
ALTER TABLE llx_product CHANGE COLUMN fk_country fk_country INTEGER NULL DEFAULT NULL;
ALTER TABLE llx_product MODIFY COLUMN fk_country INTEGER NULL DEFAULT NULL;
UPDATE llx_product SET fk_country = NULL WHERE fk_country = 0;
ALTER TABLE llx_product ADD INDEX idx_product_fk_country (fk_country);
ALTER TABLE llx_product ADD CONSTRAINT fk_product_fk_country FOREIGN KEY (fk_country) REFERENCES llx_c_pays (rowid);
-- fk_user_author
ALTER TABLE llx_product CHANGE COLUMN fk_user_author fk_user_author INTEGER NULL DEFAULT NULL;
ALTER TABLE llx_product MODIFY COLUMN fk_user_author INTEGER NULL DEFAULT NULL;
ALTER TABLE llx_product ADD INDEX idx_product_fk_user_author (fk_user_author);
-- fk_barcode_type
ALTER TABLE llx_product CHANGE COLUMN fk_barcode_type fk_barcode_type INTEGER NULL DEFAULT NULL;
ALTER TABLE llx_product MODIFY COLUMN fk_barcode_type INTEGER NULL DEFAULT NULL;
UPDATE llx_product SET fk_barcode_type = NULL WHERE fk_barcode_type = 0;
ALTER TABLE llx_product ADD INDEX idx_product_fk_barcode_type (fk_barcode_type);
ALTER TABLE llx_product ADD CONSTRAINT fk_product_barcode_type FOREIGN KEY (fk_barcode_type) REFERENCES llx_c_barcode_type (rowid);

View File

@ -16,4 +16,4 @@
--
-- ============================================================================
ALTER TABLE llx_expeditiondet_batch ADD INDEX ix_fk_expeditiondet (fk_expeditiondet);
ALTER TABLE llx_expeditiondet_batch ADD CONSTRAINT fk_expeditiondet_batch_fk_expeditiondet FOREIGN KEY (fk_expeditiondet) REFERENCES llx_expeditiondet (rowid) ON DELETE CASCADE;
ALTER TABLE llx_expeditiondet_batch ADD CONSTRAINT fk_expeditiondet_batch_fk_expeditiondet FOREIGN KEY (fk_expeditiondet) REFERENCES llx_expeditiondet(rowid);

View File

@ -16,4 +16,4 @@
--
-- ============================================================================
ALTER TABLE llx_product_batch ADD INDEX ix_fk_product_stock (fk_product_stock);
ALTER TABLE llx_product_batch ADD CONSTRAINT fk_product_batch_fk_product_stock FOREIGN KEY (fk_product_stock) REFERENCES llx_product_stock (rowid) ON DELETE CASCADE;
ALTER TABLE llx_product_batch ADD CONSTRAINT fk_product_batch_fk_product_stock FOREIGN KEY (fk_product_stock) REFERENCES llx_product_stock (rowid);

View File

@ -149,11 +149,15 @@ class SqlTest extends PHPUnit_Framework_TestCase
$result=strpos($filecontent,'`');
print __METHOD__." Result for checking we don't have back quote = ".$result."\n";
$this->assertTrue($result===false);
$this->assertTrue($result===false, 'Found ON back quote. Bad.');
$result=strpos($filecontent,'int(');
print __METHOD__." Result for checking we don't have 'int(' instead of 'integer' = ".$result."\n";
$this->assertTrue($result===false);
$this->assertTrue($result===false, 'Found int(x) instead of integer. Bad.');
$result=strpos($filecontent,'ON DELETE CASCADE');
print __METHOD__." Result for checking we don't have 'ON DELETE CASCADE' = ".$result."\n";
$this->assertTrue($result===false, 'Found ON DELETE CASCADE. Bad.');
}
return;