mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-13 22:06:51 +08:00
Fix #18845: Fix duplicating id
in MigrateController::addDefaultPrimaryKey()
This commit is contained in:
@ -11,6 +11,7 @@ Yii Framework 2 Change Log
|
|||||||
- Enh #18762: Added `yii\helpers\Json::$keepObjectType` and `yii\web\JsonResponseFormatter::$keepObjectType` in order to avoid changing zero-indexed objects to array in `yii\helpers\Json::encode()` (zebraf1)
|
- Enh #18762: Added `yii\helpers\Json::$keepObjectType` and `yii\web\JsonResponseFormatter::$keepObjectType` in order to avoid changing zero-indexed objects to array in `yii\helpers\Json::encode()` (zebraf1)
|
||||||
- Enh #18783: Add support for URI namespaced tags in `XmlResponseFormatter` (WinterSilence, samdark)
|
- Enh #18783: Add support for URI namespaced tags in `XmlResponseFormatter` (WinterSilence, samdark)
|
||||||
- Enh #18783: Add `XmlResponseFormatter::$objectTagToLowercase` option to lowercase object tags (WinterSilence, samdark)
|
- Enh #18783: Add `XmlResponseFormatter::$objectTagToLowercase` option to lowercase object tags (WinterSilence, samdark)
|
||||||
|
- Bug #18845: Fix duplicating `id` in `MigrateController::addDefaultPrimaryKey()` (WinterSilence, samdark)
|
||||||
- Bug #17119: Fix `yii\caching\Cache::multiSet()` to use `yii\caching\Cache::$defaultDuration` when no duration is passed (OscarBarrett)
|
- Bug #17119: Fix `yii\caching\Cache::multiSet()` to use `yii\caching\Cache::$defaultDuration` when no duration is passed (OscarBarrett)
|
||||||
|
|
||||||
|
|
||||||
|
@ -606,7 +606,7 @@ class MigrateController extends BaseMigrateController
|
|||||||
protected function addDefaultPrimaryKey(&$fields)
|
protected function addDefaultPrimaryKey(&$fields)
|
||||||
{
|
{
|
||||||
foreach ($fields as $field) {
|
foreach ($fields as $field) {
|
||||||
if (false !== strripos($field['decorators'], 'primarykey()')) {
|
if ($field['property'] === 'id' || false !== strripos($field['decorators'], 'primarykey()')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @link http://www.yiiframework.com/
|
||||||
|
* @copyright Copyright (c) 2008 Yii Software LLC
|
||||||
|
* @license http://www.yiiframework.com/license/
|
||||||
|
*/
|
||||||
|
|
||||||
|
return <<<CODE
|
||||||
|
<?php
|
||||||
|
|
||||||
|
{$namespace}use yii\db\Migration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handles the creation of table `{{%{table}}}`.
|
||||||
|
*/
|
||||||
|
class {$class} extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function safeUp()
|
||||||
|
{
|
||||||
|
\$this->createTable('{{%{table}}}', [
|
||||||
|
'id' => \$this->integer(11)->notNull(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function safeDown()
|
||||||
|
{
|
||||||
|
\$this->dropTable('{{%{table}}}');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CODE;
|
@ -133,6 +133,9 @@ class MigrateControllerTest extends TestCase
|
|||||||
price:money(11,2):notNull,
|
price:money(11,2):notNull,
|
||||||
parenthesis_in_comment:string(255):notNull:comment(\'Name of set (RU)\')',
|
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' => [
|
'create_fields_with_col_method_after_default_value' => [
|
||||||
'fields' => 'id:primaryKey,
|
'fields' => 'id:primaryKey,
|
||||||
title:string(10):notNull:unique:defaultValue("test"):after("id"),
|
title:string(10):notNull:unique:defaultValue("test"):after("id"),
|
||||||
@ -229,6 +232,7 @@ class MigrateControllerTest extends TestCase
|
|||||||
|
|
||||||
['create_fields', 'create_test_table', 'test', $params['create_fields']],
|
['create_fields', 'create_test_table', 'test', $params['create_fields']],
|
||||||
['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_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']],
|
['create_unsigned_pk', 'create_test_table', 'test', $params['create_unsigned_pk']],
|
||||||
|
Reference in New Issue
Block a user