Skip to content

Commit 8250c09

Browse files
committed
Fix errors in SOHELAHMED7#10
1 parent e2fc2e9 commit 8250c09

23 files changed

+54
-20
lines changed

src/lib/ColumnToCode.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ public function getAlterExpression(bool $addUsingExpression = false):string
170170
if ($this->isEnum() && ApiGenerator::isPostgres()) {
171171
$rawTableName = $this->dbSchema->getRawTableName($this->tableAlias);
172172
$enumTypeName = 'enum_'.$rawTableName.'_'.$this->column->name;
173-
return "'" . sprintf($enumTypeName.' USING "%1$s"::"'.$enumTypeName.'"', $this->column->name) . "'";
173+
return "'" . sprintf('"'.$enumTypeName.'" USING "%1$s"::"'.$enumTypeName.'"', $this->column->name) . "'";
174174
}
175175
if ($this->column->dbType === 'tsvector') {
176176
return "'" . $this->rawParts['type'] . "'";
@@ -379,7 +379,7 @@ private function resolveEnumType():void
379379
{
380380
if (ApiGenerator::isPostgres()) {
381381
$rawTableName = $this->dbSchema->getRawTableName($this->tableAlias);
382-
$this->rawParts['type'] = 'enum_'.$rawTableName.'_' . $this->column->name;
382+
$this->rawParts['type'] = '"enum_'.$rawTableName.'_' . $this->column->name.'"';
383383
return;
384384
}
385385
$this->rawParts['type'] = 'enum(' . self::mysqlEnumToString($this->column->enumValues) . ')';

src/lib/migrations/BaseMigrationBuilder.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ public function tmpSaveNewCol(string $tableAlias, \cebe\yii2openapi\db\ColumnSch
416416
return '"tmp_enum_'.$columnName.'_"';
417417
};
418418
$rawTableName = $this->db->schema->getRawTableName($tableAlias);
419-
$innerEnumTypeName = "enum_{$tmpTableName}_$columnSchema->name";
419+
$innerEnumTypeName = "\"enum_{$tmpTableName}_{$columnSchema->name}\"";
420420

421421
Yii::$app->db->createCommand('DROP TABLE IF EXISTS '.$tmpTableName)->execute();
422422

tests/migrations/m100000_000000_pgsql.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public function safeUp()
102102
'json2' => $this->json()->null()->defaultValue(null),
103103
'json3' => $this->json()->defaultValue(Json::encode(['foo' => 'bar', 'bar' => 'baz'])),
104104
'json4' => "json DEFAULT '" . new Expression(Json::encode(['ffo' => 'bar'])) . "'",
105-
'status' => $enumTypeName,
105+
'status' => '"'.$enumTypeName.'"',
106106
'search' => 'tsvector'
107107
]);
108108
$columns = [

tests/specs/blog_v2/migrations_pgsql_db/m200000_000000_change_table_v2_posts.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public function safeUp()
99
{
1010
$this->addColumn('{{%v2_posts}}', 'id', $this->bigPrimaryKey());
1111
$this->execute('CREATE TYPE "enum_itt_v2_posts_lang" AS ENUM(\'ru\', \'eng\')');
12-
$this->addColumn('{{%v2_posts}}', 'lang', 'enum_itt_v2_posts_lang NULL DEFAULT \'ru\'');
12+
$this->addColumn('{{%v2_posts}}', 'lang', '"enum_itt_v2_posts_lang" NULL DEFAULT \'ru\'');
1313
$this->dropColumn('{{%v2_posts}}', 'uid');
1414
$this->alterColumn('{{%v2_posts}}', 'active', "DROP DEFAULT");
1515
$this->alterColumn('{{%v2_posts}}', 'category_id', 'bigint NOT NULL USING "category_id"::bigint');

tests/specs/blog_v2/migrations_pgsql_db/m200000_000001_create_table_v2_tags.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public function safeUp()
1111
$this->createTable('{{%v2_tags}}', [
1212
'id' => $this->bigPrimaryKey(),
1313
0 => '"name" varchar(100) NOT NULL',
14-
'lang' => 'enum_itt_v2_tags_lang NOT NULL',
14+
'lang' => '"enum_itt_v2_tags_lang" NOT NULL',
1515
]);
1616
$this->createIndex('v2_tags_name_key', '{{%v2_tags}}', 'name', true);
1717
}

tests/specs/blog_v2/migrations_pgsql_db/m200000_000004_change_table_v2_users.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public function safeUp()
1212
$this->dropColumn('{{%v2_users}}', 'username');
1313
$this->alterColumn('{{%v2_users}}', 'created_at', "DROP DEFAULT");
1414
$this->db->createCommand('ALTER TABLE {{%v2_users}} ALTER COLUMN "email" SET DATA TYPE varchar(255)')->execute();
15-
$this->alterColumn('{{%v2_users}}', 'role', 'enum_itt_v2_users_role USING "role"::"enum_itt_v2_users_role"');
15+
$this->alterColumn('{{%v2_users}}', 'role', '"enum_itt_v2_users_role" USING "role"::"enum_itt_v2_users_role"');
1616
$this->alterColumn('{{%v2_users}}', 'role', "DROP DEFAULT");
1717
$this->dropIndex('v2_users_username_key', '{{%v2_users}}');
1818
$this->createIndex('v2_users_login_key', '{{%v2_users}}', 'login', true);

tests/specs/enum/change/maria/app/migrations_maria_db/m200000_000000_change_table_editcolumns.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ class m200000_000000_change_table_editcolumns extends \yii\db\Migration
77
{
88
public function up()
99
{
10+
$this->alterColumn('{{%editcolumns}}', 'camelCaseCol', 'enum("ONE", "TWO", "THREE") NOT NULL DEFAULT \'TWO\'');
1011
$this->alterColumn('{{%editcolumns}}', 'connection', 'enum("WIRED", "WIRELESS") NOT NULL DEFAULT \'WIRED\'');
1112
$this->alterColumn('{{%editcolumns}}', 'device', $this->text()->null()->defaultValue(null));
1213
}
@@ -15,5 +16,6 @@ public function down()
1516
{
1617
$this->alterColumn('{{%editcolumns}}', 'device', 'enum("MOBILE", "TV", "COMPUTER") NOT NULL DEFAULT \'TV\'');
1718
$this->alterColumn('{{%editcolumns}}', 'connection', $this->string(255)->null()->defaultValue(null));
19+
$this->alterColumn('{{%editcolumns}}', 'camelCaseCol', $this->string(255)->null()->defaultValue(null));
1820
}
1921
}

tests/specs/enum/change/mysql/app/migrations_mysql_db/m200000_000000_change_table_editcolumns.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ class m200000_000000_change_table_editcolumns extends \yii\db\Migration
77
{
88
public function up()
99
{
10+
$this->alterColumn('{{%editcolumns}}', 'camelCaseCol', 'enum("ONE", "TWO", "THREE") NOT NULL DEFAULT \'TWO\'');
1011
$this->alterColumn('{{%editcolumns}}', 'connection', 'enum("WIRED", "WIRELESS") NOT NULL DEFAULT \'WIRED\'');
1112
$this->alterColumn('{{%editcolumns}}', 'device', $this->text()->null());
1213
}
@@ -15,5 +16,6 @@ public function down()
1516
{
1617
$this->alterColumn('{{%editcolumns}}', 'device', 'enum("MOBILE", "TV", "COMPUTER") NOT NULL DEFAULT \'TV\'');
1718
$this->alterColumn('{{%editcolumns}}', 'connection', $this->string(255)->null()->defaultValue(null));
19+
$this->alterColumn('{{%editcolumns}}', 'camelCaseCol', $this->string(255)->null()->defaultValue(null));
1820
}
1921
}

tests/specs/enum/change/pgsql/app/migrations_pgsql_db/m200000_000000_change_table_editcolumns.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@ class m200000_000000_change_table_editcolumns extends \yii\db\Migration
88
public function safeUp()
99
{
1010
$this->execute('CREATE TYPE "enum_itt_editcolumns_connection" AS ENUM(\'WIRED\', \'WIRELESS\')');
11-
$this->alterColumn('{{%editcolumns}}', 'connection', 'enum_itt_editcolumns_connection USING "connection"::"enum_itt_editcolumns_connection"');
11+
$this->execute('CREATE TYPE "enum_itt_editcolumns_camelCaseCol" AS ENUM(\'ONE\', \'TWO\', \'THREE\')');
12+
$this->alterColumn('{{%editcolumns}}', 'camelCaseCol', '"enum_itt_editcolumns_camelCaseCol" USING "camelCaseCol"::"enum_itt_editcolumns_camelCaseCol"');
13+
$this->alterColumn('{{%editcolumns}}', 'camelCaseCol', "SET NOT NULL");
14+
$this->alterColumn('{{%editcolumns}}', 'camelCaseCol', "SET DEFAULT 'TWO'");
15+
$this->alterColumn('{{%editcolumns}}', 'connection', '"enum_itt_editcolumns_connection" USING "connection"::"enum_itt_editcolumns_connection"');
1216
$this->alterColumn('{{%editcolumns}}', 'connection', "SET NOT NULL");
1317
$this->alterColumn('{{%editcolumns}}', 'connection', "SET DEFAULT 'WIRED'");
1418
$this->alterColumn('{{%editcolumns}}', 'device', 'text NULL USING "device"::text');
@@ -20,8 +24,12 @@ public function safeUp()
2024
public function safeDown()
2125
{
2226
$this->execute('CREATE TYPE "enum_itt_editcolumns_device" AS ENUM(\'MOBILE\', \'TV\', \'COMPUTER\')');
23-
$this->alterColumn('{{%editcolumns}}', 'device', 'enum_itt_editcolumns_device USING "device"::"enum_itt_editcolumns_device"');
27+
$this->alterColumn('{{%editcolumns}}', 'device', '"enum_itt_editcolumns_device" USING "device"::"enum_itt_editcolumns_device"');
2428
$this->alterColumn('{{%editcolumns}}', 'connection', 'varchar(255) NULL USING "connection"::varchar');
29+
$this->alterColumn('{{%editcolumns}}', 'camelCaseCol', 'varchar(255) NULL USING "camelCaseCol"::varchar');
30+
$this->alterColumn('{{%editcolumns}}', 'camelCaseCol', "DROP NOT NULL");
31+
$this->alterColumn('{{%editcolumns}}', 'camelCaseCol', "DROP DEFAULT");
32+
$this->execute('DROP TYPE "enum_itt_editcolumns_camelCaseCol"');
2533
$this->alterColumn('{{%editcolumns}}', 'connection', "DROP NOT NULL");
2634
$this->alterColumn('{{%editcolumns}}', 'connection', "DROP DEFAULT");
2735
$this->execute('DROP TYPE "enum_itt_editcolumns_connection"');

tests/specs/enum/change/pgsql/app/migrations_pgsql_db/m200000_000001_create_table_newcolumns.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public function safeUp()
1010
$this->execute('CREATE TYPE "enum_itt_newcolumns_new_column" AS ENUM(\'ONE\', \'TWO\', \'THREE\')');
1111
$this->createTable('{{%newcolumns}}', [
1212
'id' => $this->primaryKey(),
13-
'new_column' => 'enum_itt_newcolumns_new_column NOT NULL DEFAULT \'ONE\'',
13+
'new_column' => '"enum_itt_newcolumns_new_column" NOT NULL DEFAULT \'ONE\'',
1414
]);
1515
}
1616

0 commit comments

Comments
 (0)