From 79e68767dba028fc75657fb630b29713e826c143 Mon Sep 17 00:00:00 2001 From: simialbi Date: Sat, 22 Feb 2020 15:17:06 +0100 Subject: [PATCH] Fix #11945: Fix Schema Builder MySQL column definition order --- framework/CHANGELOG.md | 1 + framework/db/mysql/ColumnSchemaBuilder.php | 4 ++-- tests/framework/db/mysql/ColumnSchemaBuilderTest.php | 8 +++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/framework/CHANGELOG.md b/framework/CHANGELOG.md index f71661c643..a339d54463 100644 --- a/framework/CHANGELOG.md +++ b/framework/CHANGELOG.md @@ -4,6 +4,7 @@ Yii Framework 2 Change Log 2.0.33 under development ------------------------ +- Bug #11945: Fix Schema Builder MySQL column definition order (simialbi) - Bug #16334: Serializer support `\JsonSerializable` (germanow) - Bug #17798: Avoid creating folder for stream log targets in `FileTarget` (wapmorgan) - Bug #17850: Update to `ReplaceArrayValue` config exception message (alex-code) diff --git a/framework/db/mysql/ColumnSchemaBuilder.php b/framework/db/mysql/ColumnSchemaBuilder.php index 02cef57ca2..de5740dc64 100644 --- a/framework/db/mysql/ColumnSchemaBuilder.php +++ b/framework/db/mysql/ColumnSchemaBuilder.php @@ -61,10 +61,10 @@ class ColumnSchemaBuilder extends AbstractColumnSchemaBuilder $format = '{type}{length}{comment}{check}{append}{pos}'; break; case self::CATEGORY_NUMERIC: - $format = '{type}{length}{unsigned}{notnull}{unique}{default}{comment}{check}{append}{pos}'; + $format = '{type}{length}{unsigned}{notnull}{default}{unique}{comment}{append}{pos}{check}'; break; default: - $format = '{type}{length}{notnull}{unique}{default}{comment}{check}{append}{pos}'; + $format = '{type}{length}{notnull}{default}{unique}{comment}{append}{pos}{check}'; } return $this->buildCompleteString($format); diff --git a/tests/framework/db/mysql/ColumnSchemaBuilderTest.php b/tests/framework/db/mysql/ColumnSchemaBuilderTest.php index 7f1b0ffb6c..83d5ccd0fb 100644 --- a/tests/framework/db/mysql/ColumnSchemaBuilderTest.php +++ b/tests/framework/db/mysql/ColumnSchemaBuilderTest.php @@ -8,7 +8,7 @@ namespace yiiunit\framework\db\mysql; use yii\db\mysql\ColumnSchemaBuilder; -use yii\db\Schema; +use yii\db\mysql\Schema; /** * ColumnSchemaBuilderTest tests ColumnSchemaBuilder for MySQL. @@ -44,6 +44,12 @@ class ColumnSchemaBuilderTest extends \yiiunit\framework\db\ColumnSchemaBuilderT ['integer(10) COMMENT \'test\'', Schema::TYPE_INTEGER, 10, [ ['comment', 'test'], ]], + // https://github.com/yiisoft/yii2/issues/11945 # TODO: real test against database + ['string(50) NOT NULL COMMENT \'Property name\' COLLATE ascii_general_ci', Schema::TYPE_STRING, 50, [ + ['comment', 'Property name'], + ['append', 'COLLATE ascii_general_ci'], + ['notNull'] + ]], ]; } }