@@ -24,8 +24,8 @@ final class MigrationRecordBuilder
2424 public const DROP_FK = MigrationRecordBuilder::INDENT . "\$this->dropForeignKey('%s', '%s'); " ;
2525 public const DROP_PK = MigrationRecordBuilder::INDENT . "\$this->dropPrimaryKey('%s', '%s'); " ;
2626 public const ADD_TABLE = MigrationRecordBuilder::INDENT . "\$this->createTable('%s', %s); " ;
27- public const ADD_UNIQUE = MigrationRecordBuilder::INDENT . "\$this->createIndex('%s', '%s', '%s' , true); " ;
28- public const ADD_INDEX = MigrationRecordBuilder::INDENT . "\$this->createIndex('%s', '%s', '%s' , %s); " ;
27+ public const ADD_UNIQUE = MigrationRecordBuilder::INDENT . "\$this->createIndex('%s', '%s', %s , true); " ;
28+ public const ADD_INDEX = MigrationRecordBuilder::INDENT . "\$this->createIndex('%s', '%s', %s , %s); " ;
2929 public const DROP_COLUMN = MigrationRecordBuilder::INDENT . "\$this->dropColumn('%s', '%s'); " ;
3030 public const ADD_ENUM = MigrationRecordBuilder::INDENT . "\$this->execute('CREATE TYPE \"enum_%s_%s \" AS ENUM(%s)'); " ;
3131 public const DROP_ENUM = MigrationRecordBuilder::INDENT . "\$this->execute('DROP TYPE \"enum_%s_%s \"'); " ;
@@ -88,7 +88,7 @@ public function addColumn(string $tableAlias, ColumnSchema $column, ?string $pos
8888 if (is_string ($ column ->xDbType ) && !empty ($ column ->xDbType )) {
8989 $ converter = $ this ->columnToCode ($ tableAlias , $ column , false , false , false , false , $ position );
9090 $ name = static ::quote ($ column ->name );
91- return sprintf (self ::ADD_COLUMN_RAW , $ tableAlias , $ name , $ converter ->getCode ());
91+ return sprintf (self ::ADD_COLUMN_RAW , $ tableAlias , $ name , ColumnToCode:: escapeQuotes ( $ converter ->getCode () ));
9292 }
9393
9494 $ converter = $ this ->columnToCode ($ tableAlias , $ column , false , false , false , false , $ position );
@@ -103,7 +103,7 @@ public function addDbColumn(string $tableAlias, ColumnSchema $column, ?string $p
103103 if (property_exists ($ column , 'xDbType ' ) && is_string ($ column ->xDbType ) && !empty ($ column ->xDbType )) {
104104 $ converter = $ this ->columnToCode ($ tableAlias , $ column , true , false , false , false , $ position );
105105 $ name = static ::quote ($ column ->name );
106- return sprintf (self ::ADD_COLUMN_RAW , $ tableAlias , $ column ->name , $ converter ->getCode ());
106+ return sprintf (self ::ADD_COLUMN_RAW , $ tableAlias , $ column ->name , ColumnToCode:: escapeQuotes ( $ converter ->getCode () ));
107107 }
108108 $ converter = $ this ->columnToCode ($ tableAlias , $ column , true , false , false , false , $ position );
109109 return sprintf (self ::ADD_COLUMN , $ tableAlias , $ column ->name , $ converter ->getCode (true ));
@@ -120,7 +120,7 @@ public function alterColumn(string $tableAlias, ColumnSchema $column):string
120120 ApiGenerator::isPostgres () ? self ::ALTER_COLUMN_RAW_PGSQL : self ::ALTER_COLUMN_RAW ,
121121 $ tableAlias ,
122122 $ column ->name ,
123- $ converter ->getCode ()
123+ ColumnToCode:: escapeQuotes ( $ converter ->getCode () )
124124 );
125125 }
126126 $ converter = $ this ->columnToCode ($ tableAlias , $ column , true );
@@ -231,13 +231,24 @@ public function addFk(string $fkName, string $tableAlias, string $fkCol, string
231231
232232 public function addUniqueIndex (string $ tableAlias , string $ indexName , array $ columns ):string
233233 {
234- return sprintf (self ::ADD_UNIQUE , $ indexName , $ tableAlias , implode (', ' , $ columns ));
234+ return sprintf (
235+ self ::ADD_UNIQUE ,
236+ $ indexName ,
237+ $ tableAlias ,
238+ count ($ columns ) === 1 ? "' {$ columns [0 ]}' " : '[" ' .implode ('", " ' , $ columns ).'"] '
239+ );
235240 }
236241
237242 public function addIndex (string $ tableAlias , string $ indexName , array $ columns , ?string $ using = null ):string
238243 {
239244 $ indexType = $ using === null ? 'false ' : "' " .ColumnToCode::escapeQuotes ($ using )."' " ;
240- return sprintf (self ::ADD_INDEX , $ indexName , $ tableAlias , implode (', ' , $ columns ), $ indexType );
245+ return sprintf (
246+ self ::ADD_INDEX ,
247+ $ indexName ,
248+ $ tableAlias ,
249+ count ($ columns ) === 1 ? "' {$ columns [0 ]}' " : '[" ' .implode ('", " ' , $ columns ).'"] ' ,
250+ $ indexType
251+ );
241252 }
242253
243254 public function addPrimaryKey (string $ tableAlias , array $ columns , string $ pkName = null ):string
@@ -329,7 +340,7 @@ public static function makeString(array $codeColumns): string
329340 }
330341 }
331342
332- $ codeColumns = str_replace ([PHP_EOL , "\\ \' " ], [PHP_EOL . self ::INDENT .' ' , " ' " ], $ finalStr );
343+ $ codeColumns = str_replace ([PHP_EOL ], [PHP_EOL . self ::INDENT .' ' ], $ finalStr );
333344 $ codeColumns = trim ($ codeColumns );
334345 $ codeColumns = '[ ' .PHP_EOL .self ::INDENT .' ' .$ codeColumns .PHP_EOL . self ::INDENT .'] ' ;
335346 return $ codeColumns ;
0 commit comments