MYSQL-spørringer og eZ DB info
Artikkelindeks
Hente ut innhold fra ez-pub-db direkte til fil:
SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM test_table;
http://dev.mysql.com/doc/refman/4.1/en/select.html
Endre en attributt fra ISO-8859-1 til UTF-8 basert på attributt-id:
UPDATE ezcontentobject_attribute SET data_text = replace(data_text,'iso-8859-1','utf-8') WHERE contentclassattribute_id=219;
Dersom man ved en publisering av klasse endringer får en feil kan det være at man får en ny versjon av klassen men som mangler data. Da vil man ikke kunne redigere klassen lenger og vil måtte rydde opp i DB. Klasser er definert i 4 tabeller:
ezcontentclass ezcontentclass_attribute ezcontentclass_name ezcontentclass_classgroup
For å se hva som ligger der og i hvilke versjoner kan man bruke denne spørringen for å se samlet innhold:
SELECT c.id, ca.id,ca.identifier, c.version,cn.name, cg.group_id, cg.group_name FROM ezcontentclass as c LEFT JOIN ezcontentclass_attribute as ca ON c.id = ca.contentclass_id LEFT JOIN ezcontentclass_name as cn ON c.id = cn.contentclass_id LEFT JOIN ezcontentclass_classgroup as cg ON c.id = cg.contentclass_id WHERE c.id = <klasse id man editerte>;
Det du da vil se er at den siste versjonen der har noe tomt innhold eller noe slik, det er denne versjonen vi vil slette, det må så gjøres i alle 4 tabellene:
DELETE FROM ezcontentclass WHERE id = <klasseid> and version = <versjonen man skal slette>; DELETE FROM ezcontentclass_attribute WHERE contentclass_id = <klasseid> and version = <versjon>; DELETE FROM ezcontentclass_name where contentclass_id = <klasse id> and contentclass_version = <versjon>; DELETE FROM ezcontentclass_classgroup where contentclass_id = <klasse id> and contentclass_version = <versjon>;
Dersom du må nullstille passordet for admin kan det gjøres som følger (det nye blir nå ’publish’):
UPDATE ezuser SET password_hash = 'c78e3b0f3d9244ed8c6d1c29464bdff9' WHERE contentobject_id=[id til admin bruker];
Bruk følgende for å liste ut alle brukerne og finne id til admin:
SELECT * FROM ezuser;
For å renske ezsessions tabellen for gamle sesjoner kan følgende spørring kjøres:
DELETE FROM ezsession WHERE expiration_time < [timestamp for nå]