Zum Inhalt springen

Startbefüllung von Tabellen

Erstellt am 7. April 2011 · 6 Antworten · letzte Antwort am 10. April 2011

Tags: Datenbank, Frage

kontaktschmied ·

Hallo Forum,

in einer eigenen Extension möchte ich ein Teil der Tabellen schon einmal mit Daten befüllen, die dann weiter im BE gefüllt werden können. Gibt es dafür eine Standardlösung?

Rainer

Julian.​Hofmann ·

Hallo Rainer.

IMHO sollte da funktionieren, indem Du in der ext_tables.sql die entsprechenden INSERTs mit speicherst.

Viele Grüße
Julian

kontaktschmied ·

Das mit den Inserts in der ext_tables.sql habe ich ausprobiert. Geht leider nicht, muss ich wohl einen Importer schreiben …

CREATE TABLE tx_theaterplan_artists (
	uid int(11) NOT NULL auto_increment,
	pid int(11) DEFAULT '0' NOT NULL,
	tstamp int(11) DEFAULT '0' NOT NULL,
	crdate int(11) DEFAULT '0' NOT NULL,
	cruser_id int(11) DEFAULT '0' NOT NULL,
	deleted tinyint(4) DEFAULT '0' NOT NULL,
	hidden tinyint(4) DEFAULT '0' NOT NULL,
	firstname tinytext,
	lastname tinytext,
	ascciiname tinytext,
	agegroup   tinetext,
	PRIMARY KEY (uid),
	KEY parent (pid)
);

INSERT INTO tx_theaterplan_artists SET uid=1, crdate=1302258745, firstname="Inga", lastname="Abel", ascciiname="Abel", agegroup="";
INSERT INTO tx_theaterplan_artists SET uid=2, crdate=1302258745, firstname="Marlene", lastname="Achtermann", ascciiname="Achtermann", agegroup="";
jenses ·
kontaktschmied schrieb

Das mit den Inserts in der ext_tables.sql habe ich ausprobiert. Geht leider nicht, muss ich wohl einen Importer schreiben …

Die Inserts müssen in der ext_tables_static+adt.sql stattfinden,
dann solltest du keinen Importer brauchen.
So wird es jedenfalls bei static_info_tables, statictemplates etc. gemacht...

jenses ·
kontaktschmied schrieb

Durch welches Ereigniss wird der Import ausgelöst?

Es reicht, daß beim Installieren der Extension im EM eine Datei ext_tables_static+adt.sql im Extensionordner gefunden wird.

siehe
../typo3/sysext/em/classes/install/class.tx_em_install.php

-> function checkDBupdates($extKey, $extInfo, $infoOnly = 0)