craftcms / cms

Build bespoke content experiences with Craft.
https://craftcms.com
Other
3.22k stars 626 forks source link

Upgrade from 3.6.17 to 3.7.1 fails with Unknown column 'globalsets.sortOrder' in 'field list' #9574

Closed faradaytrs closed 3 years ago

faradaytrs commented 3 years ago

Description

./craft update all
Fetching available updates ... done
Performing one update:

    - craft 3.6.17 => 3.7.1

Backup the database? (yes|no) [yes]:no
Skipping database backup.
Performing update with Composer ... done
Applying new migrations ... error: The command "'/usr/local/Cellar/php/8.0.8_1/bin/php' '/Users/imax/PhpstormProjects/globus/craft' 'migrate/all' '--no-backup' '--no-content'" failed.

Exit Code: 1(General error)

Working directory: /Users/imax/PhpstormProjects/globus

Output:
================

Error Output:
================
Exception 'yii\db\Exception' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'globalsets.sortOrder' in 'field list'
The SQL being executed was: SELECT `elements`.`id`, `elements`.`fieldLayoutId`, `elements`.`uid`, `elements`.`enabled`, `elements`.`archived`, `elements`.`dateCreated`, `elements`.`dateUpdated`, `elements_sites`.`id` AS `siteSettingsId`, `elements_sites`.`slug`, `elements_sites`.`siteId`, `elements_sites`.`uri`, `elements_sites`.`enabled` AS `enabledForSite`, `globalsets`.`name`, `globalsets`.`handle`, `globalsets`.`sortOrder`, `globalsets`.`uid`, `content`.`id` AS `contentId`
FROM (SELECT `elements`.`id` AS `elementsId`, `elements_sites`.`id` AS `elementsSitesId`, `content`.`id` AS `contentId`
FROM `elements` `elements`
INNER JOIN `globalsets` `globalsets` ON `globalsets`.`id` = `elements`.`id`
INNER JOIN `elements_sites` `elements_sites` ON `elements_sites`.`elementId` = `elements`.`id`
INNER JOIN `content` `content` ON (`content`.`elementId` = `elements`.`id`) AND (`content`.`siteId` = `elements_sites`.`siteId`)
WHERE (`globalsets`.`handle`='feeds') AND (`elements_sites`.`siteId`=1) AND (`elements`.`archived`=FALSE) AND (`elements`.`dateDeleted` IS NULL) AND (`elements`.`draftId` IS NULL) AND (`elements`.`revisionId` IS NULL)
ORDER BY `globalsets`.`name`
LIMIT 1) `subquery`
INNER JOIN `globalsets` `globalsets` ON `globalsets`.`id` = `subquery`.`elementsId`
INNER JOIN `elements` `elements` ON `elements`.`id` = `subquery`.`elementsId`
INNER JOIN `elements_sites` `elements_sites` ON `elements_sites`.`id` = `subquery`.`elementsSitesId`
INNER JOIN `content` `content` ON `content`.`id` = `subquery`.`contentId`
ORDER BY `globalsets`.`name`'

in /Users/imax/PhpstormProjects/globus/vendor/yiisoft/yii2/db/Schema.php:678

Error Info:
Array
(
    [0] => 42S22
    [1] => 1054
    [2] => Unknown column 'globalsets.sortOrder' in 'field list'
)

Caused by: Exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'globalsets.sortOrder' in 'field list''

in /Users/imax/PhpstormProjects/globus/vendor/yiisoft/yii2/db/Command.php:1302

Stack trace:
#0 /Users/imax/PhpstormProjects/globus/vendor/yiisoft/yii2/db/Command.php(1302): PDOStatement->execute()
#1 /Users/imax/PhpstormProjects/globus/vendor/yiisoft/yii2/db/Command.php(1168): yii\db\Command->internalExecute('SELECT `element...')
#2 /Users/imax/PhpstormProjects/globus/vendor/yiisoft/yii2/db/Command.php(424): yii\db\Command->queryInternal('fetch', NULL)
#3 /Users/imax/PhpstormProjects/globus/vendor/yiisoft/yii2/db/Query.php(287): yii\db\Command->queryOne()
#4 /Users/imax/PhpstormProjects/globus/vendor/craftcms/cms/src/db/Query.php(168): yii\db\Query->one(NULL)
#5 /Users/imax/PhpstormProjects/globus/vendor/craftcms/cms/src/elements/db/ElementQuery.php(1603): craft\db\Query->one(NULL)
#6 /Users/imax/PhpstormProjects/globus/config/element-api.php(13): craft\elements\db\ElementQuery->one()
#7 /Users/imax/PhpstormProjects/globus/vendor/craftcms/cms/src/services/Config.php(204): include('/Users/imax/Php...')
#8 /Users/imax/PhpstormProjects/globus/vendor/craftcms/cms/src/services/Plugins.php(930): craft\services\Config->getConfigFromFile('element-api')
#9 /Users/imax/PhpstormProjects/globus/vendor/craftcms/cms/src/services/Plugins.php(233): craft\services\Plugins->createPlugin('element-api', Array)
#10 /Users/imax/PhpstormProjects/globus/vendor/craftcms/cms/src/base/ApplicationTrait.php(1470): craft\services\Plugins->loadPlugins()
#11 /Users/imax/PhpstormProjects/globus/vendor/craftcms/cms/src/console/Application.php(48): craft\console\Application->_postInit()
#12 /Users/imax/PhpstormProjects/globus/vendor/yiisoft/yii2/base/BaseObject.php(109): craft\console\Application->init()
#13 /Users/imax/PhpstormProjects/globus/vendor/yiisoft/yii2/base/Application.php(212): yii\base\BaseObject->__construct(Array)
#14 /Users/imax/PhpstormProjects/globus/vendor/yiisoft/yii2/console/Application.php(90): yii\base\Application->__construct(Array)
#15 [internal function]: yii\console\Application->__construct(Array)
#16 /Users/imax/PhpstormProjects/globus/vendor/yiisoft/yii2/di/Container.php(420): ReflectionClass->newInstanceArgs(Array)
#17 /Users/imax/PhpstormProjects/globus/vendor/yiisoft/yii2/di/Container.php(171): yii\di\Container->build('craft\\console\\A...', Array, Array)
#18 /Users/imax/PhpstormProjects/globus/vendor/yiisoft/yii2/BaseYii.php(365): yii\di\Container->get('craft\\console\\A...', Array, Array)
#19 /Users/imax/PhpstormProjects/globus/vendor/craftcms/cms/bootstrap/bootstrap.php(242): yii\BaseYii::createObject(Array)
#20 /Users/imax/PhpstormProjects/globus/vendor/craftcms/cms/bootstrap/console.php(51): require('/Users/imax/Php...')
#21 /Users/imax/PhpstormProjects/globus/craft(21): require('/Users/imax/Php...')
#22 {main}

Output:

Steps to reproduce

  1. Install craftcms 3.6.17
  2. Try to upgrade to 3.7.1 using craft update all

Additional info

faradaytrs commented 3 years ago

i upgraded to 3.6.18 first, and 3.6.18 works fine, but i still can't upgrade to 3.7+

brandonkelly commented 3 years ago

Got a clue for how this was occurring from the stack trace, and just fixed this for the next release.

To get the fix early, change your craftcms/cms requirement in composer.json to "dev-develop as 3.7.1" and run composer update.

brandonkelly commented 3 years ago

Craft 3.7.2 is out now with the fix for this. Thanks for reporting!