Updating safely to 2.15.3

finishing the upgrade

After running console mautic:update:apply you very much want to do a hard cache:clear by deleting the app/cache/prod directory.

$ rm -rf ./app/cache/prod
$ console cache:clear

image

$ console --version
Mautic version 2.15.3 - app/prod

That should give you a working login page (/s/login), but check the database mappings and schema.

database schema checks

migration status

$ console doctrine:migrations:status

 == Configuration

    >> Name:                                               Mautic Migrations
    >> Database Driver:                                    pdo_mysql
    >> Database Name:                                      mauticuserdb
    >> Configuration Source:                               manually configured
    >> Version Table Name:                                 migrations
    >> Version Column Name:                                version
    >> Migrations Namespace:                               Mautic\Migrations
    >> Migrations Directory:                               /var/www/mauticuser/mautic/app/migrations
    >> Previous Version:                                   2018-12-04 00:00:00 (20181204000000)
    >> Current Version:                                    2019-07-15 06:50:13 (20190715065013)
    >> Next Version:                                       Already at latest version
    >> Latest Version:                                     2019-07-15 06:50:13 (20190715065013)
    >> Executed Migrations:                                134
    >> Executed Unavailable Migrations:                    0
    >> Available Migrations:                               134
    >> New Migrations:                                     0

schema validate :white_check_mark:

$ console doctrine:schema:validate
[Mapping]  FAIL - The entity-class 'Mautic\DynamicContentBundle\Entity\DynamicContentLeadData' mapping is invalid:
* The association Mautic\DynamicContentBundle\Entity\DynamicContentLeadData#dynamicContent refers to the inverse side field Mautic\DynamicContentBundle\Entity\DynamicContent#id which is not defined as association.
* The association Mautic\DynamicContentBundle\Entity\DynamicContentLeadData#dynamicContent refers to the inverse side field Mautic\DynamicContentBundle\Entity\DynamicContent#id which does not exist.

[Mapping]  FAIL - The entity-class 'Bazinga\OAuthServerBundle\Model\AccessToken' mapping is invalid:
* The field 'Bazinga\OAuthServerBundle\Model\AccessToken#expiresAt' uses a non-existant type 'int'.

[Mapping]  FAIL - The entity-class 'Bazinga\OAuthServerBundle\Model\RequestToken' mapping is invalid:
* The field 'Bazinga\OAuthServerBundle\Model\RequestToken#expiresAt' uses a non-existant type 'int'.

[Database] FAIL - The database schema is not in sync with the current mapping file.

interpreting the results

  • known issues :bug:
    • GitHub Issue #5847

      • Mautic\DynamicContentBundle\Entity\DynamicContentLeadData
    • GitHub Issue #5848

      • The entity-class Bazinga\OAuthServerBundle\Model\AccessToken
      • The entity-class Bazinga\OAuthServerBundle\Model\RequestToken

      Submitted PR #4 to the forked repo

schema update :card_file_box:

$ console doctrine:schema:update
ATTENTION: This operation should not be executed in a production environment.
           Use the incremental update to detect changes during development and use
           the SQL DDL provided to manually update your database in production.

The Schema-Tool would execute "29" queries to update the database.
Please run the operation by passing one - or both - of the following options:
    doctrine:schema:update --force to execute the command
    doctrine:schema:update --dump-sql to dump the SQL statements to the screen
$ console doctrine:schema:update --dump-sql

Most of these updates look like the plugin MauticExtendedFieldBundle is doing it’s job.
eg: lead_fields_leads_<type>_xref

Sample SQL queries
ALTER TABLE campaign_events_timing ADD CONSTRAINT FK_3002A471F7E88B FOREIGN KEY (event_id) REFERENCES campaign_events (id) ON DELETE CASCADE;
ALTER TABLE lead_fields_leads_boolean_xref ADD CONSTRAINT FK_C0A1940855458D FOREIGN KEY (lead_id) REFERENCES leads (id) ON DELETE CASCADE;
ALTER TABLE lead_fields_leads_text_xref ADD CONSTRAINT FK_EA908229EE6485B3 FOREIGN KEY (lead_field_id) REFERENCES lead_fields (id) ON DELETE CASCADE;
ALTER TABLE lead_fields_leads_time_xref ADD CONSTRAINT FK_4053F53155458D FOREIGN KEY (lead_id) REFERENCES leads (id) ON DELETE CASCADE;
ALTER TABLE lead_fields_leads_time_xref ADD CONSTRAINT FK_4053F531EE6485B3 FOREIGN KEY (lead_field_id) REFERENCES lead_fields (id) ON DELETE CASCADE;
ALTER TABLE lead_fields_leads_string_secure_xref ADD CONSTRAINT FK_6F66100A55458D FOREIGN KEY (lead_id) REFERENCES leads (id) ON DELETE CASCADE;

Virgil
:australia:

2 Likes