Fixed RBAC migration after bad copy-paste

This commit is contained in:
SilverFire - Dmitry Naumenko
2017-02-16 09:28:24 +02:00
parent 95a175d771
commit 1c496532e5

View File

@ -74,7 +74,7 @@ class m140506_102106_rbac_init extends \yii\db\Migration
'updated_at' => $this->integer(), 'updated_at' => $this->integer(),
'PRIMARY KEY ([[name]])', 'PRIMARY KEY ([[name]])',
'FOREIGN KEY ([[rule_name]]) REFERENCES ' . $authManager->ruleTable . ' ([[name]])'. 'FOREIGN KEY ([[rule_name]]) REFERENCES ' . $authManager->ruleTable . ' ([[name]])'.
$this->buildFkClause() $this->buildFkClause('ON DELETE SET NULL', 'ON UPDATE CASCADE')
], $tableOptions); ], $tableOptions);
$this->createIndex('idx-auth_item-type', $authManager->itemTable, 'type'); $this->createIndex('idx-auth_item-type', $authManager->itemTable, 'type');
@ -83,9 +83,9 @@ class m140506_102106_rbac_init extends \yii\db\Migration
'child' => $this->string(64)->notNull(), 'child' => $this->string(64)->notNull(),
'PRIMARY KEY ([[parent]], [[child]])', 'PRIMARY KEY ([[parent]], [[child]])',
'FOREIGN KEY ([[parent]]) REFERENCES ' . $authManager->itemTable . ' ([[name]])'. 'FOREIGN KEY ([[parent]]) REFERENCES ' . $authManager->itemTable . ' ([[name]])'.
$this->buildFkClause(), $this->buildFkClause('ON DELETE CASCADE', 'ON UPDATE CASCADE'),
'FOREIGN KEY ([[child]]) REFERENCES ' . $authManager->itemTable . ' ([[name]])'. 'FOREIGN KEY ([[child]]) REFERENCES ' . $authManager->itemTable . ' ([[name]])'.
$this->buildFkClause(), $this->buildFkClause('ON DELETE CASCADE', 'ON UPDATE CASCADE'),
], $tableOptions); ], $tableOptions);
$this->createTable($authManager->assignmentTable, [ $this->createTable($authManager->assignmentTable, [
@ -94,7 +94,7 @@ class m140506_102106_rbac_init extends \yii\db\Migration
'created_at' => $this->integer(), 'created_at' => $this->integer(),
'PRIMARY KEY ([[item_name]], [[user_id]])', 'PRIMARY KEY ([[item_name]], [[user_id]])',
'FOREIGN KEY ([[item_name]]) REFERENCES ' . $authManager->itemTable . ' ([[name]])' . 'FOREIGN KEY ([[item_name]]) REFERENCES ' . $authManager->itemTable . ' ([[name]])' .
$this->buildFkClause(), $this->buildFkClause('ON DELETE CASCADE', 'ON UPDATE CASCADE'),
], $tableOptions); ], $tableOptions);
if ($this->isMSSQL()) { if ($this->isMSSQL()) {
@ -153,16 +153,16 @@ class m140506_102106_rbac_init extends \yii\db\Migration
$this->dropTable($authManager->ruleTable); $this->dropTable($authManager->ruleTable);
} }
protected function buildFkClause() protected function buildFkClause($delete = '', $update = '')
{ {
if ($this->isMSSQL()) { if ($this->isMSSQL()) {
return ''; return '';
} }
if ($this->isOracle()) { if ($this->isOracle()) {
return ' ON DELETE SET NULL'; return ' ' . $delete;
} }
return ' ON DELETE SET NULL ON UPDATE CASCADE'; return implode(' ', ['', $delete, $update]);
} }
} }