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
Adjust tests for enum with table name
  • Loading branch information
SOHELAHMED7 committed Jan 4, 2023
commit d4f6f2ddd4de86845dc4cf1d1ae664ceaf96d2f0
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ 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->addColumn('{{%v2_posts}}', 'lang', 'enum_lang NULL DEFAULT \'ru\'');
$this->execute('CREATE TYPE "enum_itt_v2_posts_lang" AS ENUM(\'ru\', \'eng\')');
$this->addColumn('{{%v2_posts}}', 'lang', 'enum_itt_v2_posts_lang NULL DEFAULT \'ru\'');
$this->dropColumn('{{%v2_posts}}', 'uid');
$this->alterColumn('{{%v2_posts}}', 'active', "DROP DEFAULT");
$this->alterColumn('{{%v2_posts}}', 'category_id', 'bigint NOT NULL USING "category_id"::bigint');
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_itt_v2_posts_lang"');
$this->alterColumn('{{%v2_posts}}', 'active', "SET DEFAULT 'f'");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ 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_itt_v2_tags_lang" AS ENUM(\'ru\', \'eng\')');
$this->createTable('{{%v2_tags}}', [
'id' => $this->bigPrimaryKey(),
0 => '"name" varchar(100) NOT NULL',
'lang' => 'enum_lang NOT NULL',
'lang' => 'enum_itt_v2_tags_lang NOT NULL',
]);
$this->createIndex('v2_tags_name_key', '{{%v2_tags}}', 'name', true);
}
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_itt_v2_tags_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_itt_v2_users_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_itt_v2_users_role USING "role"::"enum_itt_v2_users_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_itt_v2_users_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_itt_editcolumns_connection" AS ENUM(\'WIRED\', \'WIRELESS\')');
$this->alterColumn('{{%editcolumns}}', 'connection', 'enum_itt_editcolumns_connection USING "connection"::"enum_itt_editcolumns_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_itt_editcolumns_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_itt_editcolumns_device" AS ENUM(\'MOBILE\', \'TV\', \'COMPUTER\')');
$this->alterColumn('{{%editcolumns}}', 'device', 'enum_itt_editcolumns_device USING "device"::"enum_itt_editcolumns_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_itt_editcolumns_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,16 +7,16 @@ 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_itt_newcolumns_new_column" AS ENUM(\'ONE\', \'TWO\', \'THREE\')');
$this->createTable('{{%newcolumns}}', [
'id' => $this->primaryKey(),
'new_column' => 'enum_new_column NOT NULL DEFAULT \'ONE\'',
'new_column' => 'enum_itt_newcolumns_new_column NOT NULL DEFAULT \'ONE\'',
]);
}

public function safeDown()
{
$this->dropTable('{{%newcolumns}}');
$this->execute('DROP TYPE "enum_new_column"');
$this->execute('DROP TYPE "enum_itt_newcolumns_new_column"');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ 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_itt_pristines_device" AS ENUM(\'MOBILE\', \'TV\', \'COMPUTER\')');
$this->createTable('{{%pristines}}', [
'id' => $this->primaryKey(),
'device' => 'enum_device NOT NULL DEFAULT \'TV\'',
'device' => 'enum_itt_pristines_device NOT NULL DEFAULT \'TV\'',
]);
}

public function safeDown()
{
$this->dropTable('{{%pristines}}');
$this->execute('DROP TYPE "enum_device"');
$this->execute('DROP TYPE "enum_itt_pristines_device"');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ 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_itt_editcolumns_connection" AS ENUM(\'WIRED\', \'WIRELESS\')');
$this->createTable('{{%editcolumns}}', [
'id' => $this->primaryKey(),
'device' => $this->text()->null()->defaultValue(null),
'connection' => 'enum_connection NOT NULL DEFAULT \'WIRED\'',
'connection' => 'enum_itt_editcolumns_connection NOT NULL DEFAULT \'WIRED\'',
]);
}

public function safeDown()
{
$this->dropTable('{{%editcolumns}}');
$this->execute('DROP TYPE "enum_connection"');
$this->execute('DROP TYPE "enum_itt_editcolumns_connection"');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ 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_itt_newcolumns_new_column" AS ENUM(\'ONE\', \'TWO\', \'THREE\')');
$this->createTable('{{%newcolumns}}', [
'id' => $this->primaryKey(),
'new_column' => 'enum_new_column NOT NULL DEFAULT \'ONE\'',
'new_column' => 'enum_itt_newcolumns_new_column NOT NULL DEFAULT \'ONE\'',
]);
}

public function safeDown()
{
$this->dropTable('{{%newcolumns}}');
$this->execute('DROP TYPE "enum_new_column"');
$this->execute('DROP TYPE "enum_itt_newcolumns_new_column"');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ 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_itt_pristines_device" AS ENUM(\'MOBILE\', \'TV\', \'COMPUTER\')');
$this->createTable('{{%pristines}}', [
'id' => $this->primaryKey(),
'device' => 'enum_device NOT NULL DEFAULT \'TV\'',
'device' => 'enum_itt_pristines_device NOT NULL DEFAULT \'TV\'',
]);
}

public function safeDown()
{
$this->dropTable('{{%pristines}}');
$this->execute('DROP TYPE "enum_device"');
$this->execute('DROP TYPE "enum_itt_pristines_device"');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ 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_itt_editcolumns_connection" AS ENUM(\'WIRED\', \'WIRELESS\')');
$this->createTable('{{%editcolumns}}', [
'id' => $this->primaryKey(),
'device' => $this->text()->null()->defaultValue(null),
'connection' => 'enum_connection NOT NULL DEFAULT \'WIRED\'',
'connection' => 'enum_itt_editcolumns_connection NOT NULL DEFAULT \'WIRED\'',
]);
}

public function safeDown()
{
$this->dropTable('{{%editcolumns}}');
$this->execute('DROP TYPE "enum_connection"');
$this->execute('DROP TYPE "enum_itt_editcolumns_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->addColumn('{{%newcolumns}}', 'new_column', 'enum_new_column NOT NULL DEFAULT \'ONE\'');
$this->execute('CREATE TYPE "enum_itt_newcolumns_new_column" AS ENUM(\'ONE\', \'TWO\', \'THREE\')');
$this->addColumn('{{%newcolumns}}', 'new_column', 'enum_itt_newcolumns_new_column NOT NULL DEFAULT \'ONE\'');
$this->dropColumn('{{%newcolumns}}', 'delete_col');
$this->execute('DROP TYPE "enum_delete_col"');
$this->execute('DROP TYPE "enum_itt_newcolumns_delete_col"');
}

public function safeDown()
{
$this->execute('CREATE TYPE "enum_delete_col" AS ENUM(\'FOUR\', \'FIVE\', \'SIX\')');
$this->addColumn('{{%newcolumns}}', 'delete_col', 'enum_delete_col NULL DEFAULT NULL');
$this->execute('CREATE TYPE "enum_itt_newcolumns_delete_col" AS ENUM(\'FOUR\', \'FIVE\', \'SIX\')');
$this->addColumn('{{%newcolumns}}', 'delete_col', 'enum_itt_newcolumns_delete_col NULL DEFAULT NULL');
$this->dropColumn('{{%newcolumns}}', 'new_column');
$this->execute('DROP TYPE "enum_new_column"');
$this->execute('DROP TYPE "enum_itt_newcolumns_new_column"');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ 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_itt_pristines_device" AS ENUM(\'MOBILE\', \'TV\', \'COMPUTER\')');
$this->createTable('{{%pristines}}', [
'id' => $this->primaryKey(),
'device' => 'enum_device NOT NULL DEFAULT \'TV\'',
'device' => 'enum_itt_pristines_device NOT NULL DEFAULT \'TV\'',
]);
}

public function safeDown()
{
$this->dropTable('{{%pristines}}');
$this->execute('DROP TYPE "enum_device"');
$this->execute('DROP TYPE "enum_itt_pristines_device"');
}
}
18 changes: 9 additions & 9 deletions tests/unit/EnumTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -202,11 +202,11 @@ public function testChangeToAndFromEnum() // edit enum to string and vice versa
private function deleteTables()
{
if (ApiGenerator::isPostgres()) {
Yii::$app->db->createCommand('DROP TYPE IF EXISTS enum_device CASCADE')->execute();
Yii::$app->db->createCommand('DROP TYPE IF EXISTS enum_connection CASCADE')->execute();
Yii::$app->db->createCommand('DROP TYPE IF EXISTS enum_new_column CASCADE')->execute();
Yii::$app->db->createCommand('DROP TYPE IF EXISTS enum_delete_col CASCADE')->execute();
Yii::$app->db->createCommand('DROP TYPE IF EXISTS enum_add_one_mood_at_last CASCADE')->execute();
Yii::$app->db->createCommand('DROP TYPE IF EXISTS enum_itt_pristines_device CASCADE')->execute();
Yii::$app->db->createCommand('DROP TYPE IF EXISTS enum_itt_editcolumns_device CASCADE')->execute();
Yii::$app->db->createCommand('DROP TYPE IF EXISTS enum_itt_editcolumns_connection CASCADE')->execute();
Yii::$app->db->createCommand('DROP TYPE IF EXISTS enum_itt_newcolumns_new_column CASCADE')->execute();
Yii::$app->db->createCommand('DROP TYPE IF EXISTS enum_itt_newcolumns_delete_col CASCADE')->execute();
}
Yii::$app->db->createCommand('DROP TABLE IF EXISTS {{%pristines}}')->execute();
Yii::$app->db->createCommand('DROP TABLE IF EXISTS {{%newcolumns}}')->execute();
Expand All @@ -218,10 +218,10 @@ private function deleteTables()
private function createTableForEditEnumToString() // and vice versa
{
if (ApiGenerator::isPostgres()) {
Yii::$app->db->createCommand('CREATE TYPE enum_device AS ENUM(\'MOBILE\', \'TV\', \'COMPUTER\')')->execute();
Yii::$app->db->createCommand('CREATE TYPE enum_itt_editcolumns_device AS ENUM(\'MOBILE\', \'TV\', \'COMPUTER\')')->execute();
Yii::$app->db->createCommand()->createTable('{{%editcolumns}}', [
'id' => 'pk',
'device' => 'enum_device NOT NULL DEFAULT \'TV\'',
'device' => 'enum_itt_editcolumns_device NOT NULL DEFAULT \'TV\'',
'connection' => 'string'
])->execute();
return;
Expand All @@ -236,10 +236,10 @@ private function createTableForEditEnumToString() // and vice versa
private function createTableForNewEnumColumn()
{
if (ApiGenerator::isPostgres()) {
Yii::$app->db->createCommand('CREATE TYPE enum_delete_col AS ENUM(\'FOUR\', \'FIVE\', \'SIX\')')->execute();
Yii::$app->db->createCommand('CREATE TYPE enum_itt_newcolumns_delete_col AS ENUM(\'FOUR\', \'FIVE\', \'SIX\')')->execute();
Yii::$app->db->createCommand()->createTable('{{%newcolumns}}', [
'id' => 'pk',
'delete_col' => 'enum_delete_col'
'delete_col' => 'enum_itt_newcolumns_delete_col'
])->execute();
return;
}
Expand Down