Zum Inhalt springen

Default Charset für neue Tabellen in eigener Extension

Erstellt am 11. November 2011 · 2 Antworten · letzte Antwort am 11. November 2011

Tags: Datenbank, Frage

Unbekannter Benutzer ·

Hallo zusammen!

Mein erster Post hier, hab über die Suchfunktion nichts gefunden was zu meiner Frage passt. o.O

Ich habe eine Extension mit Hilfe des Kickstarter erstellt und möchte, dass bei der Installation der Extension noch einige Datenbank Tabellen hinzugefügt werden. Dies möchte ich nicht mit Hilfe des Kickstarter realisieren, weil er einige für mich unnötige Spalten (uid,pid,tstamp,...) der Tabelle hinzufügt, also habe ich einfach meinen SQL Code in die ext_tables.sql geschrieben:

  CREATE TABLE tx_myext_bibb (

  muh int(11) NOT NULL auto_increment,
  blubbblubb varchar(100) NOT NULL,
  blabla varchar(255) NOT NULL,
  [...]
  PRIMARY KEY  (muh)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1000 ;

Wenn dieser Code in PhpMyAdmin ausgeführt wird, funktioniert er wunderbar, wenn ich aber im BE die Extension installieren will, gibt mir der Extension Manager als Information, welche SQL Befehle ausgeführt werden nur das hier aus:

  CREATE TABLE tx_myext_bibb (

  muh int(11) NOT NULL auto_increment,
  blubbblubb varchar(100) NOT NULL,
  blabla varchar(255) NOT NULL,
  [...]
  PRIMARY KEY  (muh)
) ENGINE=MyISAM ;

Das Default Charset (und auto_increment) wird also ignoriert. 🙁

Edit: Kleiner Nachtrag: Wenn ich die Extension dann installiere, wird latin1 als Charset für die Tabellen übernommen

Weiß vll. jemand, wie ich das Default charset für die neuen Tabellen-Spalten meiner Extension einstellen kann?

Vielen Dank im Voraus 😉

Unbekannter Benutzer ·

Ok, ich bin selber auf die Lösung gekommen 😉

Für solche statischen Informationen wie den Zeichensatz ist die Datei ext_tables_static+adt.sql zuständig.
Rename von ext_tables.sql auf obigen Namen hat das Problem gelöst :o

aemka · · Beste Antwort

Es macht sehr wenig Sinn am TYPO3 Framwork vorbei zu entwickeln, nur um ein paar Bytes zu sparen. Die Spalten uid, pid, tstamp gibt es aus gutem Grund. Ohne sie kannst du das TCA nicht nutzen, die Datensätze nicht im Backend mit dem Listen-Modul pflegen, etc. Ausserdem erspart der Kickstarter Zeit, Tipparbeit und Rätselraten. .-)