craftcms / cms

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

[5.x]: Migration error from Craft 4 to Craft 5 #14086

Closed engram-design closed 9 months ago

engram-design commented 9 months ago

What happened?

Upgrading from the CLI produces the following:

*** applying m230524_220029_global_entry_types
    > dropping {{%sections_entrytypes}} if it exists ... done (time: 0.000s)
    > create table {{%sections_entrytypes}} ... done (time: 0.011s)
    > add foreign key fk_ohbskltubqkttdmrifgjmadnrxakclbrempc: {{%sections_entrytypes}} (sectionId) references {{%sections}} (id) ... done (time: 0.008s)
    > add foreign key fk_hnkotjuqtcsprwnidunxjnypzarbpehebjsp: {{%sections_entrytypes}} (typeId) references {{%entrytypes}} (id) ... done (time: 0.010s)
    > insert into {{%sections_entrytypes}} ... done (time: 0.002s)
    > dropping foreign key on {{%entrytypes}} if it exists ... done (time: 0.007s)
    > dropping index on {{%entrytypes}} if it exists ... done (time: 0.006s)
    > dropping index on {{%entrytypes}} if it exists ... done (time: 0.006s)
    > dropping index on {{%entrytypes}} if it exists ... done (time: 0.006s)
    > drop column sectionId from table {{%entrytypes}} ... done (time: 0.036s)
    > drop column sortOrder from table {{%entrytypes}} ... done (time: 0.036s)
Exception: Setting unknown property: craft\records\EntryType::showSlugField (/Users/joshcrawford/public_html/craft50/vendor/yiisoft/yii2/base/Component.php:209)
#0 /Users/joshcrawford/public_html/craft50/vendor/yiisoft/yii2/db/BaseActiveRecord.php(322): yii\base\Component->__set('showSlugField', true)
#1 /Users/joshcrawford/public_html/craft50/vendor/craftcms/cms/src/db/ActiveRecord.php(56): yii\db\BaseActiveRecord->__set('showSlugField', true)
#2 /Users/joshcrawford/public_html/craft50/vendor/craftcms/cms/src/services/Entries.php(1384): craft\db\ActiveRecord->__set('showSlugField', true)
#3 /Users/joshcrawford/public_html/craft50/vendor/craftcms/cms/src/base/ApplicationTrait.php(1828): craft\services\Entries->handleChangedEntryType(Object(craft\events\ConfigEvent))
#4 /Users/joshcrawford/public_html/craft50/vendor/craftcms/cms/src/services/ProjectConfig.php(1160): craft\console\Application->craft\base\{closure}(Object(craft\events\ConfigEvent))
#5 [internal function]: craft\services\ProjectConfig->handleChangeEvent(Object(craft\events\ConfigEvent))
#6 /Users/joshcrawford/public_html/craft50/vendor/yiisoft/yii2/base/Component.php(633): call_user_func(Array, Object(craft\events\ConfigEvent))
#7 /Users/joshcrawford/public_html/craft50/vendor/craftcms/cms/src/models/ProjectConfigData.php(85): yii\base\Component->trigger('updateItem', Object(craft\events\ConfigEvent))
#8 /Users/joshcrawford/public_html/craft50/vendor/craftcms/cms/src/services/ProjectConfig.php(558): craft\models\ProjectConfigData->commitChanges(Array, Array, 'entryTypes.3c93...', true, NULL, true)
#9 /Users/joshcrawford/public_html/craft50/vendor/craftcms/cms/src/services/ProjectConfig.php(518): craft\services\ProjectConfig->_setInternal('entryTypes.3c93...', Array, NULL, true, false)
#10 /Users/joshcrawford/public_html/craft50/vendor/craftcms/cms/src/migrations/m230524_220029_global_entry_types.php(123): craft\services\ProjectConfig->set('entryTypes.3c93...', Array)
#11 /Users/joshcrawford/public_html/craft50/vendor/craftcms/cms/src/db/Migration.php(49): craft\migrations\m230524_220029_global_entry_types->safeUp()
#12 /Users/joshcrawford/public_html/craft50/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(758): craft\db\Migration->up()
#13 /Users/joshcrawford/public_html/craft50/vendor/craftcms/cms/src/console/controllers/MigrateController.php(365): yii\console\controllers\BaseMigrateController->migrateUp('m230524_220029_...')
#14 [internal function]: craft\console\controllers\MigrateController->actionAll()
#15 /Users/joshcrawford/public_html/craft50/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
#16 /Users/joshcrawford/public_html/craft50/vendor/yiisoft/yii2/base/Controller.php(178): yii\base\InlineAction->runWithParams(Array)
#17 /Users/joshcrawford/public_html/craft50/vendor/yiisoft/yii2/console/Controller.php(180): yii\base\Controller->runAction('all', Array)
#18 /Users/joshcrawford/public_html/craft50/vendor/craftcms/cms/src/console/ControllerTrait.php(89): yii\console\Controller->runAction('all', Array)
#19 /Users/joshcrawford/public_html/craft50/vendor/yiisoft/yii2/base/Module.php(552): craft\console\controllers\MigrateController->runAction('all', Array)
#20 /Users/joshcrawford/public_html/craft50/vendor/yiisoft/yii2/console/Application.php(180): yii\base\Module->runAction('migrate/all', Array)
#21 /Users/joshcrawford/public_html/craft50/vendor/craftcms/cms/src/console/Application.php(91): yii\console\Application->runAction('migrate/all', Array)
#22 /Users/joshcrawford/public_html/craft50/vendor/yiisoft/yii2/base/Controller.php(212): craft\console\Application->runAction('migrate/all', Array)
#23 /Users/joshcrawford/public_html/craft50/vendor/craftcms/cms/src/console/Controller.php(207): yii\base\Controller->run('migrate/all', Array)
#24 /Users/joshcrawford/public_html/craft50/vendor/craftcms/cms/src/console/controllers/UpController.php(66): craft\console\Controller->run('migrate/all', Array)
#25 [internal function]: craft\console\controllers\UpController->actionIndex()
#26 /Users/joshcrawford/public_html/craft50/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
#27 /Users/joshcrawford/public_html/craft50/vendor/yiisoft/yii2/base/Controller.php(178): yii\base\InlineAction->runWithParams(Array)
#28 /Users/joshcrawford/public_html/craft50/vendor/yiisoft/yii2/console/Controller.php(180): yii\base\Controller->runAction('', Array)
#29 /Users/joshcrawford/public_html/craft50/vendor/craftcms/cms/src/console/ControllerTrait.php(89): yii\console\Controller->runAction('', Array)
#30 /Users/joshcrawford/public_html/craft50/vendor/craftcms/cms/src/console/Controller.php(216): craft\console\Controller->traitRunAction('', Array)
#31 /Users/joshcrawford/public_html/craft50/vendor/yiisoft/yii2/base/Module.php(552): craft\console\Controller->runAction('', Array)
#32 /Users/joshcrawford/public_html/craft50/vendor/yiisoft/yii2/console/Application.php(180): yii\base\Module->runAction('up', Array)
#33 /Users/joshcrawford/public_html/craft50/vendor/craftcms/cms/src/console/Application.php(91): yii\console\Application->runAction('up', Array)
#34 /Users/joshcrawford/public_html/craft50/vendor/yiisoft/yii2/console/Application.php(147): craft\console\Application->runAction('up', Array)
#35 /Users/joshcrawford/public_html/craft50/vendor/craftcms/cms/src/console/Application.php(122): yii\console\Application->handleRequest(Object(craft\console\Request))
#36 /Users/joshcrawford/public_html/craft50/vendor/yiisoft/yii2/base/Application.php(384): craft\console\Application->handleRequest(Object(craft\console\Request))
#37 /Users/joshcrawford/public_html/craft50/craft(13): yii\base\Application->run()
#38 {main}

Seems like something is trying to save things before the showSlugField column has been added, which is done in a later migration in m231102_113100_add_entry_type_show_slug_field.

Upgrading from Craft 4.5.13.

Craft CMS version

5.0.x-dev

PHP version

8.2

Operating system and version

No response

Database type and version

No response

Image driver and version

No response

Installed plugins and versions

-

i-just commented 9 months ago

Hi, thanks for reporting! I raised a PR for this.

brandonkelly commented 9 months ago

Fixed in 5.0.0-alpha.4. Thanks again!