Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Implement quote in enum type names
  • Loading branch information
SOHELAHMED7 committed Jan 3, 2023
commit 123e67afb49dc2666be02e525fdb31a8737584e5
2 changes: 1 addition & 1 deletion src/lib/ColumnToCode.php
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ public function getCode(bool $quoted = false):string
public function getAlterExpression(bool $addUsingExpression = false):string
{
if ($this->isEnum() && ApiGenerator::isPostgres()) {
return "'" . sprintf('enum_%1$s USING "%1$s"::enum_%1$s', $this->column->name) . "'";
return "'" . sprintf('enum_%1$s USING "%1$s"::"enum_%1$s"', $this->column->name) . "'";
}
if ($this->column->dbType === 'tsvector') {
return "'" . $this->rawParts['type'] . "'";
Expand Down
4 changes: 2 additions & 2 deletions src/lib/migrations/MigrationRecordBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ final class MigrationRecordBuilder
public const ADD_UNIQUE = MigrationRecordBuilder::INDENT . "\$this->createIndex('%s', '%s', '%s', true);";
public const ADD_INDEX = MigrationRecordBuilder::INDENT . "\$this->createIndex('%s', '%s', '%s', %s);";
public const DROP_COLUMN = MigrationRecordBuilder::INDENT . "\$this->dropColumn('%s', '%s');";
public const ADD_ENUM = MigrationRecordBuilder::INDENT . "\$this->execute('CREATE TYPE enum_%s AS ENUM(%s)');";
public const DROP_ENUM = MigrationRecordBuilder::INDENT . "\$this->execute('DROP TYPE enum_%s');";
public const ADD_ENUM = MigrationRecordBuilder::INDENT . "\$this->execute('CREATE TYPE \"enum_%s\" AS ENUM(%s)');";
public const DROP_ENUM = MigrationRecordBuilder::INDENT . "\$this->execute('DROP TYPE \"enum_%s\"');";
public const DROP_TABLE = MigrationRecordBuilder::INDENT . "\$this->dropTable('%s');";
public const ADD_FK = MigrationRecordBuilder::INDENT . "\$this->addForeignKey('%s', '%s', '%s', '%s', '%s');";
public const ADD_PK = MigrationRecordBuilder::INDENT . "\$this->addPrimaryKey('%s', '%s', '%s');";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class m200000_000000_change_table_v2_posts extends \yii\db\Migration
public function safeUp()
{
$this->addColumn('{{%v2_posts}}', 'id', $this->bigPrimaryKey());
$this->execute('CREATE TYPE enum_lang AS ENUM(\'ru\', \'eng\')');
$this->execute('CREATE TYPE "enum_lang" AS ENUM(\'ru\', \'eng\')');
$this->addColumn('{{%v2_posts}}', 'lang', 'enum_lang NULL DEFAULT \'ru\'');
$this->dropColumn('{{%v2_posts}}', 'uid');
$this->alterColumn('{{%v2_posts}}', 'active', "DROP DEFAULT");
Expand All @@ -25,7 +25,7 @@ public function safeDown()
$this->addColumn('{{%v2_posts}}', 'uid', $this->bigInteger()->notNull());
$this->dropColumn('{{%v2_posts}}', 'lang');
$this->dropColumn('{{%v2_posts}}', 'id');
$this->execute('DROP TYPE enum_lang');
$this->execute('DROP TYPE "enum_lang"');
$this->alterColumn('{{%v2_posts}}', 'active', "SET DEFAULT 'f'");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ class m200000_000001_create_table_v2_tags extends \yii\db\Migration
{
public function safeUp()
{
$this->execute('CREATE TYPE enum_lang AS ENUM(\'ru\', \'eng\')');
$this->execute('CREATE TYPE "enum_lang" AS ENUM(\'ru\', \'eng\')');
$this->createTable('{{%v2_tags}}', [
'id' => $this->bigPrimaryKey(),
0 => '"name" varchar(100) NOT NULL',
Expand All @@ -20,6 +20,6 @@ public function safeDown()
{
$this->dropIndex('v2_tags_name_key', '{{%v2_tags}}');
$this->dropTable('{{%v2_tags}}');
$this->execute('DROP TYPE enum_lang');
$this->execute('DROP TYPE "enum_lang"');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ class m200000_000004_change_table_v2_users extends \yii\db\Migration
{
public function safeUp()
{
$this->execute('CREATE TYPE enum_role AS ENUM(\'admin\', \'editor\', \'reader\')');
$this->execute('CREATE TYPE "enum_role" AS ENUM(\'admin\', \'editor\', \'reader\')');
$this->addColumn('{{%v2_users}}', 'login', $this->text()->notNull());
$this->dropColumn('{{%v2_users}}', 'username');
$this->alterColumn('{{%v2_users}}', 'created_at', "DROP DEFAULT");
$this->db->createCommand('ALTER TABLE {{%v2_users}} ALTER COLUMN "email" SET DATA TYPE varchar(255)')->execute();
$this->alterColumn('{{%v2_users}}', 'role', 'enum_role USING "role"::enum_role');
$this->alterColumn('{{%v2_users}}', 'role', 'enum_role USING "role"::"enum_role"');
$this->alterColumn('{{%v2_users}}', 'role', "DROP DEFAULT");
$this->dropIndex('v2_users_username_key', '{{%v2_users}}');
$this->createIndex('v2_users_login_key', '{{%v2_users}}', 'login', true);
Expand All @@ -30,6 +30,6 @@ public function safeDown()
$this->dropColumn('{{%v2_users}}', 'login');
$this->alterColumn('{{%v2_users}}', 'created_at', "SET DEFAULT CURRENT_TIMESTAMP");
$this->alterColumn('{{%v2_users}}', 'role', "SET DEFAULT 'reader'");
$this->execute('DROP TYPE enum_role');
$this->execute('DROP TYPE "enum_role"');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,24 @@ class m200000_000000_change_table_editcolumns extends \yii\db\Migration
{
public function safeUp()
{
$this->execute('CREATE TYPE enum_connection AS ENUM(\'WIRED\', \'WIRELESS\')');
$this->alterColumn('{{%editcolumns}}', 'connection', 'enum_connection USING "connection"::enum_connection');
$this->execute('CREATE TYPE "enum_connection" AS ENUM(\'WIRED\', \'WIRELESS\')');
$this->alterColumn('{{%editcolumns}}', 'connection', 'enum_connection USING "connection"::"enum_connection"');
$this->alterColumn('{{%editcolumns}}', 'connection', "SET NOT NULL");
$this->alterColumn('{{%editcolumns}}', 'connection', "SET DEFAULT 'WIRED'");
$this->alterColumn('{{%editcolumns}}', 'device', 'text NULL USING "device"::text');
$this->alterColumn('{{%editcolumns}}', 'device', "DROP NOT NULL");
$this->alterColumn('{{%editcolumns}}', 'device', "DROP DEFAULT");
$this->execute('DROP TYPE enum_device');
$this->execute('DROP TYPE "enum_device"');
}

public function safeDown()
{
$this->execute('CREATE TYPE enum_device AS ENUM(\'MOBILE\', \'TV\', \'COMPUTER\')');
$this->alterColumn('{{%editcolumns}}', 'device', 'enum_device USING "device"::enum_device');
$this->execute('CREATE TYPE "enum_device" AS ENUM(\'MOBILE\', \'TV\', \'COMPUTER\')');
$this->alterColumn('{{%editcolumns}}', 'device', 'enum_device USING "device"::"enum_device"');
$this->alterColumn('{{%editcolumns}}', 'connection', 'varchar(255) NULL USING "connection"::varchar');
$this->alterColumn('{{%editcolumns}}', 'connection', "DROP NOT NULL");
$this->alterColumn('{{%editcolumns}}', 'connection', "DROP DEFAULT");
$this->execute('DROP TYPE enum_connection');
$this->execute('DROP TYPE "enum_connection"');
$this->alterColumn('{{%editcolumns}}', 'device', "SET NOT NULL");
$this->alterColumn('{{%editcolumns}}', 'device', "SET DEFAULT 'TV'");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ class m200000_000001_create_table_newcolumns extends \yii\db\Migration
{
public function safeUp()
{
$this->execute('CREATE TYPE enum_new_column AS ENUM(\'ONE\', \'TWO\', \'THREE\')');
$this->execute('CREATE TYPE "enum_new_column" AS ENUM(\'ONE\', \'TWO\', \'THREE\')');
$this->createTable('{{%newcolumns}}', [
'id' => $this->primaryKey(),
'new_column' => 'enum_new_column NOT NULL DEFAULT \'ONE\'',
Expand All @@ -17,6 +17,6 @@ public function safeUp()
public function safeDown()
{
$this->dropTable('{{%newcolumns}}');
$this->execute('DROP TYPE enum_new_column');
$this->execute('DROP TYPE "enum_new_column"');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ class m200000_000002_create_table_pristines extends \yii\db\Migration
{
public function safeUp()
{
$this->execute('CREATE TYPE enum_device AS ENUM(\'MOBILE\', \'TV\', \'COMPUTER\')');
$this->execute('CREATE TYPE "enum_device" AS ENUM(\'MOBILE\', \'TV\', \'COMPUTER\')');
$this->createTable('{{%pristines}}', [
'id' => $this->primaryKey(),
'device' => 'enum_device NOT NULL DEFAULT \'TV\'',
Expand All @@ -17,6 +17,6 @@ public function safeUp()
public function safeDown()
{
$this->dropTable('{{%pristines}}');
$this->execute('DROP TYPE enum_device');
$this->execute('DROP TYPE "enum_device"');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ class m200000_000000_create_table_editcolumns extends \yii\db\Migration
{
public function safeUp()
{
$this->execute('CREATE TYPE enum_connection AS ENUM(\'WIRED\', \'WIRELESS\')');
$this->execute('CREATE TYPE "enum_connection" AS ENUM(\'WIRED\', \'WIRELESS\')');
$this->createTable('{{%editcolumns}}', [
'id' => $this->primaryKey(),
'device' => $this->text()->null()->defaultValue(null),
Expand All @@ -18,6 +18,6 @@ public function safeUp()
public function safeDown()
{
$this->dropTable('{{%editcolumns}}');
$this->execute('DROP TYPE enum_connection');
$this->execute('DROP TYPE "enum_connection"');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ class m200000_000001_create_table_newcolumns extends \yii\db\Migration
{
public function safeUp()
{
$this->execute('CREATE TYPE enum_new_column AS ENUM(\'ONE\', \'TWO\', \'THREE\')');
$this->execute('CREATE TYPE "enum_new_column" AS ENUM(\'ONE\', \'TWO\', \'THREE\')');
$this->createTable('{{%newcolumns}}', [
'id' => $this->primaryKey(),
'new_column' => 'enum_new_column NOT NULL DEFAULT \'ONE\'',
Expand All @@ -17,6 +17,6 @@ public function safeUp()
public function safeDown()
{
$this->dropTable('{{%newcolumns}}');
$this->execute('DROP TYPE enum_new_column');
$this->execute('DROP TYPE "enum_new_column"');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ class m200000_000002_create_table_pristines extends \yii\db\Migration
{
public function safeUp()
{
$this->execute('CREATE TYPE enum_device AS ENUM(\'MOBILE\', \'TV\', \'COMPUTER\')');
$this->execute('CREATE TYPE "enum_device" AS ENUM(\'MOBILE\', \'TV\', \'COMPUTER\')');
$this->createTable('{{%pristines}}', [
'id' => $this->primaryKey(),
'device' => 'enum_device NOT NULL DEFAULT \'TV\'',
Expand All @@ -17,6 +17,6 @@ public function safeUp()
public function safeDown()
{
$this->dropTable('{{%pristines}}');
$this->execute('DROP TYPE enum_device');
$this->execute('DROP TYPE "enum_device"');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ class m200000_000000_create_table_editcolumns extends \yii\db\Migration
{
public function safeUp()
{
$this->execute('CREATE TYPE enum_connection AS ENUM(\'WIRED\', \'WIRELESS\')');
$this->execute('CREATE TYPE "enum_connection" AS ENUM(\'WIRED\', \'WIRELESS\')');
$this->createTable('{{%editcolumns}}', [
'id' => $this->primaryKey(),
'device' => $this->text()->null()->defaultValue(null),
Expand All @@ -18,6 +18,6 @@ public function safeUp()
public function safeDown()
{
$this->dropTable('{{%editcolumns}}');
$this->execute('DROP TYPE enum_connection');
$this->execute('DROP TYPE "enum_connection"');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ class m200000_000001_change_table_newcolumns extends \yii\db\Migration
{
public function safeUp()
{
$this->execute('CREATE TYPE enum_new_column AS ENUM(\'ONE\', \'TWO\', \'THREE\')');
$this->execute('CREATE TYPE "enum_new_column" AS ENUM(\'ONE\', \'TWO\', \'THREE\')');
$this->addColumn('{{%newcolumns}}', 'new_column', 'enum_new_column NOT NULL DEFAULT \'ONE\'');
$this->dropColumn('{{%newcolumns}}', 'delete_col');
$this->execute('DROP TYPE enum_delete_col');
$this->execute('DROP TYPE "enum_delete_col"');
}

public function safeDown()
{
$this->execute('CREATE TYPE enum_delete_col AS ENUM(\'FOUR\', \'FIVE\', \'SIX\')');
$this->execute('CREATE TYPE "enum_delete_col" AS ENUM(\'FOUR\', \'FIVE\', \'SIX\')');
$this->addColumn('{{%newcolumns}}', 'delete_col', 'enum_delete_col NULL DEFAULT NULL');
$this->dropColumn('{{%newcolumns}}', 'new_column');
$this->execute('DROP TYPE enum_new_column');
$this->execute('DROP TYPE "enum_new_column"');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ class m200000_000002_create_table_pristines extends \yii\db\Migration
{
public function safeUp()
{
$this->execute('CREATE TYPE enum_device AS ENUM(\'MOBILE\', \'TV\', \'COMPUTER\')');
$this->execute('CREATE TYPE "enum_device" AS ENUM(\'MOBILE\', \'TV\', \'COMPUTER\')');
$this->createTable('{{%pristines}}', [
'id' => $this->primaryKey(),
'device' => 'enum_device NOT NULL DEFAULT \'TV\'',
Expand All @@ -17,6 +17,6 @@ public function safeUp()
public function safeDown()
{
$this->dropTable('{{%pristines}}');
$this->execute('DROP TYPE enum_device');
$this->execute('DROP TYPE "enum_device"');
}
}