5
5
*/
6
6
namespace Magento \Framework \Setup ;
7
7
8
+ use Magento \Framework \DB \Adapter \AdapterInterface ;
9
+
8
10
/**
9
11
* @codeCoverageIgnore
10
12
*/
@@ -35,6 +37,11 @@ class ExternalFKSetup
35
37
*/
36
38
protected $ externalColumn ;
37
39
40
+ /**
41
+ * @var string
42
+ */
43
+ protected $ onDelete ;
44
+
38
45
/**
39
46
* Install external foreign key
40
47
*
@@ -43,20 +50,23 @@ class ExternalFKSetup
43
50
* @param string $entityColumn
44
51
* @param string $externalTable
45
52
* @param string $externalColumn
53
+ * @param string $onDelete
46
54
* @return void
47
55
*/
48
56
public function install (
49
57
SchemaSetupInterface $ setup ,
50
58
$ entityTable ,
51
59
$ entityColumn ,
52
60
$ externalTable ,
53
- $ externalColumn
61
+ $ externalColumn ,
62
+ $ onDelete = AdapterInterface::FK_ACTION_CASCADE
54
63
) {
55
64
$ this ->setup = $ setup ;
56
65
$ this ->entityTable = $ entityTable ;
57
66
$ this ->entityColumn = $ entityColumn ;
58
67
$ this ->externalTable = $ externalTable ;
59
68
$ this ->externalColumn = $ externalColumn ;
69
+ $ this ->onDelete = $ onDelete ;
60
70
61
71
$ this ->execute ();
62
72
}
@@ -155,7 +165,8 @@ protected function addDefaultForeignKey()
155
165
$ this ->setup ->getTable ($ this ->externalTable ),
156
166
$ this ->externalColumn ,
157
167
$ this ->setup ->getTable ($ this ->entityTable ),
158
- $ this ->entityColumn
168
+ $ this ->entityColumn ,
169
+ $ this ->onDelete
159
170
);
160
171
}
161
172
}
@@ -193,7 +204,8 @@ function ($key) {
193
204
$ this ->setup ->getTable ($ this ->externalTable ),
194
205
$ this ->externalColumn ,
195
206
$ foreignKeyInfo ['REF_TABLE_NAME ' ],
196
- $ foreignKeyInfo ['REF_COLUMN_NAME ' ]
207
+ $ foreignKeyInfo ['REF_COLUMN_NAME ' ],
208
+ $ this ->onDelete
197
209
);
198
210
}
199
211
}
0 commit comments