Jump to content

[RISOLTO] Cancello utenti da BO ma non da DB !


tempomania

Recommended Posts

Ciao a tutti,

ho letto vari post sull'argomento che rimandano a soluzioni manuali le più disparate.

Il problema è molto semplice:

Inserisco un utente di prova, effettuo ordini, carrelli ed aggiungo indirizzi, poi entro in BO e cancello l'utente. Risultato:

- in BO rimangono tutti gli indirizzi, carrelli e ordini dell'utente cancellato (se qualcuno mi spiega che senso ha...)
- tutti i dati rimangono nel DB dal quale bisogna cancellare tutto a manina ammesso di saperlo fare ed io lo so fare poco.

Domande:

- ha senso?
- esiste un modulo che permette di cancellare tutto quanto è associato all'utente cancellato?

grazie in anticipo

Link to comment
Share on other sites

In effetti la gestione dei dati in prestashop è molto poco "relazionale". Non esistono trigger incaricati di eliminare le righe delle tabelle in relazione con una tabella madre. Comunque le tabelle nelle quali dovresti eliminare i dati per l'id_customer che vuoi cancellare sono:

* ps_address
* ps_cart
* ps_customer_group
* ps_discount
* ps_guest
* ps_mailalert_customer_oos
* ps_message
* ps_orders
* ps_order_return
* ps_order_slip
* ps_product_comment
* ps_referralprogram
* ps_wishlist


Forse per questo non hanno implementato una eliminazione a cascata :)

Per ognuna di queste taballe dovresti fare una 'delete from tabella where id_customer =valore'

Per essere precisi per alcune di queste tabelle dovresti levare altra roba (ad esempio l'eliminazione completa da tutte le tabelle ps_order_* dell'ordine dell'utente eliminato)

Mi sono sempre ripromesso di implementare un "pulitore" del db, ma non ho mai trovato uno sponsor :P

Link to comment
Share on other sites

ciao,

interessante il tuo contributo e di grande aiuto... sono preoccupato solo di togliere di mezzo, passando dallo sviluppo alla pubblicazione del negozio, tutta la "monnezza" che ho creato io...

Se anche dovesse rimanere qualcosa qua e là (seguirò il tuo promemoria) in considerazione che ho creato solo due utenti di prova non dovrebbe succedere un granchè non credi?

grazie ancora!

Link to comment
Share on other sites

No righe morte sul db in realtà non rallentano un gran che. Comunque, se volete allargare i vostri orizzonti sull'eliminazione delle righe sul DB, ammettiamo di voler eliminare tutte le righe in tutte le tabelle relative ad un determinato ordine (id_order):

* da phpmyadmin o similare facciamo un export sql del DB senza dati
* copiamo il testo in un editor
* cerchiamo tutte le occorrenze di id_order e prendiamo nota della tabella che lo ospita

Verranno fuori tutte le tabelle in cui l'id dell'ordine è - come si dice in gergo - chiave esterna. Si dovrebbe poi capire se le tabelle figlie hanno prole e in quel caso eliminare tutta la generazione.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...