From ae095d3252ffb4080123e159ca7d1b7c03de534d Mon Sep 17 00:00:00 2001 From: Anton Date: Thu, 19 Aug 2021 01:03:26 +0300 Subject: [PATCH 1/6] `MigrateController::addDefaultPrimaryKey()` skip if 'id' already set --- framework/console/controllers/MigrateController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/console/controllers/MigrateController.php b/framework/console/controllers/MigrateController.php index 3f0efeaac12..53075bfe798 100644 --- a/framework/console/controllers/MigrateController.php +++ b/framework/console/controllers/MigrateController.php @@ -606,7 +606,7 @@ protected function splitFieldIntoChunks($field) protected function addDefaultPrimaryKey(&$fields) { foreach ($fields as $field) { - if (false !== strripos($field['decorators'], 'primarykey()')) { + if ($field['property'] === 'id' || false !== stripos($field['decorators'], 'primarykey()')) { return; } } From cc454d50ede99167ab3034ce9df643b568b2479c Mon Sep 17 00:00:00 2001 From: Anton Date: Mon, 23 Aug 2021 10:55:37 +0300 Subject: [PATCH 2/6] Create create_id_field_not_as_pk.php --- .../create_id_field_not_as_pk.php | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 tests/data/console/migrate_create/create_id_field_not_as_pk.php diff --git a/tests/data/console/migrate_create/create_id_field_not_as_pk.php b/tests/data/console/migrate_create/create_id_field_not_as_pk.php new file mode 100644 index 00000000000..770d3d4c474 --- /dev/null +++ b/tests/data/console/migrate_create/create_id_field_not_as_pk.php @@ -0,0 +1,33 @@ +createTable('{{%{table}}}', [ + 'id' => \$this->integer(11)->notNull(), + ]); + } + /** + * {@inheritdoc} + */ + public function safeDown() + { + \$this->dropTable('{{%{table}}}'); + } +} +CODE; From 08532c57bf7d79eea88af51c973c0875a5cc7aae Mon Sep 17 00:00:00 2001 From: Anton Date: Mon, 23 Aug 2021 10:56:00 +0300 Subject: [PATCH 3/6] Update MigrateControllerTest.php --- tests/framework/console/controllers/MigrateControllerTest.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/framework/console/controllers/MigrateControllerTest.php b/tests/framework/console/controllers/MigrateControllerTest.php index e93e2a28061..31e235adaea 100644 --- a/tests/framework/console/controllers/MigrateControllerTest.php +++ b/tests/framework/console/controllers/MigrateControllerTest.php @@ -133,6 +133,9 @@ public function generateMigrationDataProvider() price:money(11,2):notNull, parenthesis_in_comment:string(255):notNull:comment(\'Name of set (RU)\')', ], + 'create_id_field_not_as_pk' => [ + 'fields' => 'id:integer(11):notNull', + ], 'create_fields_with_col_method_after_default_value' => [ 'fields' => 'id:primaryKey, title:string(10):notNull:unique:defaultValue("test"):after("id"), @@ -229,6 +232,7 @@ public function generateMigrationDataProvider() ['create_fields', 'create_test_table', 'test', $params['create_fields']], ['create_fields', 'create_TEST_table', 'TEST', $params['create_fields']], + ['create_id_field_not_as_pk', 'create_test_table', 'test', $params['create_id_field_not_as_pk']], ['create_title_pk', 'create_test_table', 'test', $params['create_title_pk']], ['create_title_pk', 'create_TEST_table', 'TEST', $params['create_title_pk']], ['create_unsigned_pk', 'create_test_table', 'test', $params['create_unsigned_pk']], From 1d2dff3f758249620b1c315b45e61e2393751281 Mon Sep 17 00:00:00 2001 From: Anton Date: Tue, 24 Aug 2021 13:40:13 +0300 Subject: [PATCH 4/6] Update create_id_field_not_as_pk.php --- .../data/console/migrate_create/create_id_field_not_as_pk.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/data/console/migrate_create/create_id_field_not_as_pk.php b/tests/data/console/migrate_create/create_id_field_not_as_pk.php index 770d3d4c474..0cefcb33679 100644 --- a/tests/data/console/migrate_create/create_id_field_not_as_pk.php +++ b/tests/data/console/migrate_create/create_id_field_not_as_pk.php @@ -7,7 +7,9 @@ return << \$this->integer(11)->notNull(), ]); } + /** * {@inheritdoc} */ @@ -30,4 +33,5 @@ public function safeDown() \$this->dropTable('{{%{table}}}'); } } + CODE; From fd50331da782aa4b9422ab9caa1906a94d9db3c6 Mon Sep 17 00:00:00 2001 From: Alexander Makarov Date: Tue, 24 Aug 2021 16:59:57 +0300 Subject: [PATCH 5/6] Revert string search change --- framework/console/controllers/MigrateController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/console/controllers/MigrateController.php b/framework/console/controllers/MigrateController.php index 53075bfe798..1ae91c7fd86 100644 --- a/framework/console/controllers/MigrateController.php +++ b/framework/console/controllers/MigrateController.php @@ -606,7 +606,7 @@ protected function splitFieldIntoChunks($field) protected function addDefaultPrimaryKey(&$fields) { foreach ($fields as $field) { - if ($field['property'] === 'id' || false !== stripos($field['decorators'], 'primarykey()')) { + if ($field['property'] === 'id' || false !== strripos($field['decorators'], 'primarykey()')) { return; } } From cf9cf6981189e91c9390ec0d861d56d1afbca5ec Mon Sep 17 00:00:00 2001 From: Anton Date: Fri, 3 Sep 2021 11:18:50 +0300 Subject: [PATCH 6/6] Update CHANGELOG.md --- framework/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/framework/CHANGELOG.md b/framework/CHANGELOG.md index 2db7f65f261..e86e154725b 100644 --- a/framework/CHANGELOG.md +++ b/framework/CHANGELOG.md @@ -10,6 +10,7 @@ Yii Framework 2 Change Log - Bug #18832: Fix `Inflector::camel2words()` adding extra spaces (brandonkelly) - Enh #18783: Add support for URI namespaced tags in `XmlResponseFormatter` (WinterSilence, samdark) - Enh #18783: Add `XmlResponseFormatter::$objectTagToLowercase` option to lowercase object tags (WinterSilence, samdark) +- Bug #18845: Fix duplicating `id` in `MigrateController::addDefaultPrimaryKey()` (WinterSilence, samdark) 2.0.43 August 09, 2021 ----------------------