File tree Expand file tree Collapse file tree 4 files changed +106
-1
lines changed
specs/issue_fix/63_just_column_name_rename Expand file tree Collapse file tree 4 files changed +106
-1
lines changed Original file line number Diff line number Diff line change @@ -199,9 +199,10 @@ function (string $unknownColumn) {
199
199
200
200
$ columnsForChange = array_intersect ($ wantNames , $ haveNames );
201
201
202
+ $ columnsForRename = $ this ->findColumnsToRename ($ columnsForCreate , $ columnsForDrop , $ this ->newColumns );
203
+
202
204
if ($ this ->model ->drop ) {
203
205
$ this ->newColumns = [];
204
- $ wantNames = [];
205
206
$ columnsForCreate = [];
206
207
$ columnsForChange = [];
207
208
$ columnsForDrop = [];
@@ -614,4 +615,26 @@ protected function shouldCompareComment(ColumnSchema $desired): bool
614
615
}
615
616
return $ comment ;
616
617
}
618
+
619
+ /**
620
+ * @param array $columnsForCreate
621
+ * @param array $columnsForDrop
622
+ * @param $newColumns
623
+ * @return string[]
624
+ */
625
+ public function findColumnsToRename (array &$ columnsForCreate , array &$ columnsForDrop , $ newColumns ): array
626
+ {
627
+ $ columnNames = [];
628
+ $ existingColumns = $ this ->tableSchema ->columns ;
629
+ $ existingColumnNames = array_flip (array_keys ($ existingColumns ));
630
+ $ newColumnNames = array_flip (array_keys ($ newColumns ));
631
+
632
+ foreach ($ columnsForCreate as $ name ) {
633
+ if ($ existingColumnNames [$ name ] === $ newColumnNames [$ name ]) {
634
+ // TODO compare column
635
+ }
636
+ }
637
+
638
+ return $ columnNames ;
639
+ }
617
640
}
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ return [
4
+ 'openApiPath ' => '@specs/issue_fix/63_just_column_name_rename/index.yml ' ,
5
+ 'generateUrls ' => false ,
6
+ 'generateModels ' => false ,
7
+ 'excludeModels ' => [
8
+ 'Error ' ,
9
+ ],
10
+ 'generateControllers ' => false ,
11
+ 'generateMigrations ' => true ,
12
+ 'generateModelFaker ' => false , // `generateModels` must be `true` in order to use `generateModelFaker` as `true`
13
+ ];
Original file line number Diff line number Diff line change
1
+ openapi : 3.0.3
2
+ x-description-is-comment : true
3
+ info :
4
+ title : ' Description of a property in spec must correspond to DB TABLE COLUMN COMMENT #60'
5
+ version : 1.0.0
6
+
7
+ components :
8
+ schemas :
9
+ Fruit :
10
+ type : object
11
+ properties :
12
+ id :
13
+ type : integer
14
+ name :
15
+ type : string
16
+ description : desc with ' quote
17
+ description :
18
+ type : number
19
+ x-db-type : double precision
20
+ description : desc ' 2
21
+ Animal :
22
+ type : object
23
+ properties :
24
+ id :
25
+ type : integer
26
+ name :
27
+ type : integer
28
+ g :
29
+ type : string
30
+ description : desc for g
31
+ g2 :
32
+ type : string
33
+ description : changed comment on g2 col
34
+ g3 :
35
+ type : string
36
+ description : the comment on g3 col remains same
37
+ g4 :
38
+ type : integer
39
+ description : data type changes but comment remains same
40
+ new_col :
41
+ type : string
42
+ description : new col added
43
+
44
+ paths :
45
+ ' / ' :
46
+ get :
47
+ responses :
48
+ ' 200 ' :
49
+ description : OK
Original file line number Diff line number Diff line change @@ -885,4 +885,24 @@ public function test25GenerateInverseRelations()
885
885
]);
886
886
$ this ->checkFiles ($ actualFiles , $ expectedFiles );
887
887
}
888
+
889
+ // https://github.com/php-openapi/yii2-openapi/issues/63
890
+ public function test63JustColumnNameRename ()
891
+ {
892
+ $ this ->assertTrue (4 );
893
+
894
+ return ;
895
+
896
+
897
+ $ testFile = Yii::getAlias ("@specs/issue_fix/63_just_column_name_rename/index.php " );
898
+ $ this ->runGenerator ($ testFile );
899
+ $ this ->runActualMigrations ('mysql ' , 1 );
900
+ $ actualFiles = FileHelper::findFiles (Yii::getAlias ('@app ' ), [
901
+ 'recursive ' => true ,
902
+ ]);
903
+ $ expectedFiles = FileHelper::findFiles (Yii::getAlias ("@specs/issue_fix/63_just_column_name_rename/mysql " ), [
904
+ 'recursive ' => true ,
905
+ ]);
906
+ $ this ->checkFiles ($ actualFiles , $ expectedFiles );
907
+ }
888
908
}
You can’t perform that action at this time.
0 commit comments