Skip to content

Compatibilità MySQL #355

@Dasc3er

Description

@Dasc3er

Comportamento richiesto

Con l'introduzione della gestione delle componenti del gestionale tramite Eloquent, inizia a verificarsi un problema di retro-compatibilità dovuto al fatto che le installazioni con versioni di MySQL precedenti alla 5.6.5 non presentano il campo updated_at.
Questo è causato dal fatto che, per progettazione iniziale, il campo updated_at deve aggiornarsi in automatico alla data di modifica del record perchè altrimenti sarebbe stato impossibile modificare di conseguenza tutte le query UPDATE.

L'introduzione di Eloquent permette però una semplificazione notevole: utilizzando gli oggetti relativi, i campi updated_at e created_at vengono aggiornati automaticamente da Eloquent, e quindi in futuro il requisito di MySQL potrebbe essere nuovamente rimosso. Questo però sembra aver portato ad alcune problematiche in alcuni aggiornamenti (https://www.openstamanager.com/forum/viewtopic.php?f=4&t=91527&p=98362#p98362, https://www.openstamanager.com/forum/viewtopic.php?f=2&t=91523).

Possiamo quindi procedere in due modi:

  • Bloccare il supporto a installazioni con MySQL <= 5.6.5
  • Bloccare Eloquent nell'aggiornamento del campo updated_at

La seconda scelta permetterebbe al sistema di continuare a funzionare in ambienti non aggiornati, ma rimanderebbe il problema alla prossima incompatibilità che troveremo; il primo punto permetterebbe invece di avere una maggiore conformità tra tutte le installazioni, e garantirebbe il funzionamento dell'API.

Comportamento attuale

L'aggiornamento automatico di Eloquent per il campo updated_at viene bloccato, ma dipende da una sezione di codice aggiuntivo che dobbiamo implementare di volta in volta attraverso la classe personalizzata Common\Model.
Il fix per le classi di base è nel commit 1b6f186.

Metadata

Metadata

Assignees

No one assigned

    Labels

    da definireModifiche da pianficare e approfondirediscussioneDiscussioni sulle funzionalità e i loro utilizzo

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions