Defaultwerte in DB schreiben

  • keztrel keztrel
    T3PO
    0 x
    20 Beiträge
    0 Hilfreiche Beiträge
    06. 12. 2006, 10:56

    Hallo!

    Ich würde gerne bei der Installtion einer Extension bereits Default-Werte in eine Tabelle schreiben und hab hierzu in die ext_tables.sql die entsprechenden INSERTS hinzugefügt... leider werden diese nicht ausgeführt!

    Reicht es nicht nachträglich die inserts in die Datei zu schreiben?


  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    06. 12. 2006, 11:28

    diese Inserts gehören in eine Extra Datei mit dem Namen
    ext_tables_static+adt.sql

  • keztrel keztrel
    T3PO
    0 x
    20 Beiträge
    0 Hilfreiche Beiträge
    14. 12. 2006, 10:46

    hallo nochmal!

    irgendwie funktioniert das ganze nicht so wie geplant! habe nun eine Datei (ext_tables_static+adt.sql) angelegt und dort stehen dann nur die entsprechenden Inserts drin! Diese werden allerdings beim Installieren der Extension nicht ausgeführt. Muss ich die Datei noch irgendwo verlinken?

  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    14. 12. 2006, 10:58

    Du musst vor den Inserts noch den entsprechenden Create schreiben, sonst wird das nicht erkannt. Beispiel aus der static_info_tables:

    1. DROP TABLE IF EXISTS static_taxes;
    2. CREATE TABLE static_taxes (
    3. uid int(11) unsigned auto_increment,
    4. pid int(11) unsigned default '0',
    5. crdate int(11) unsigned default '0',
    6. deleted tinyint(4) unsigned default '0',
    7. hidden tinyint(4) unsigned default '0',
    8. starttime int(11) unsigned default '0',
    9. endtime int(11) unsigned default '0',
    10. tx_country_iso_nr int(11) unsigned default '0',
    11. tx_country_iso_2 char(2) default '',
    12. tx_country_iso_3 char(3) default '',
    13. tx_zn_code varchar(45) default '',
    14. tx_name_en varchar(255) default '',
    15. tx_scope tinyint(3) unsigned default '0',
    16. tx_code varchar(5) default '',
    17. tx_class tinyint(3) unsigned default '0',
    18. tx_rate varchar(20) default '',
    19. tx_priority tinyint(3) unsigned default '0',
    20. PRIMARY KEY (uid),
    21. KEY parent (pid)
    22. );

  • keztrel keztrel
    T3PO
    0 x
    20 Beiträge
    0 Hilfreiche Beiträge
    14. 12. 2006, 17:13

    jetzt klappts thx

  • keztrel keztrel
    T3PO
    0 x
    20 Beiträge
    0 Hilfreiche Beiträge
    22. 02. 2007, 21:09

    hallo nochmal!

    Ist es auch irgendwie möglich in einer bestehende Tabelle was zu ergänzen? Mit dem DROP TABLE IF EXISTS werden ja immer alle alten Daten gelöscht, nun möchte ich jedoch einen Datensatz einfügen und die anderen aber beibehalten.

  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    22. 02. 2007, 21:54

    das DROP TABLE wird gar nicht ausgeführt. Massgeblich ist, das hier die CREATE-Anweisung drin steht. Warum ist mir auch nicht klar, da die ja auch in der sql drin ist. Fact ist, das ohne die die Inserts nicht ausgeführt werden.

  • keztrel keztrel
    T3PO
    0 x
    20 Beiträge
    0 Hilfreiche Beiträge
    25. 02. 2007, 11:13

    naja das Problem das ich habe ist nun wenn ich zwar das DROP TABLE entferne und nur den CREATE Befehl drin lasse, Typo3 dieses zwar trotzdem noch verarbeiten kann aber anscheinend die existierenede Tabelle vorher löscht und dann die CREATE Anweisung ausführt... ich habe z.B. folgende ext_tables_static+adt.sql:

    1. CREATE TABLE `tx_tmgallery_extension` (
    2. `uid` int(11) NOT NULL auto_increment,
    3. `pid` int(11) NOT NULL default '0',
    4. `tstamp` int(11) NOT NULL default '0',
    5. `crdate` int(11) NOT NULL default '0',
    6. `cruser_id` int(11) NOT NULL default '0',
    7. `deleted` tinyint(4) NOT NULL default '0',
    8. `hidden` tinyint(4) NOT NULL default '0',
    9. `name` varchar(255) NOT NULL default '',
    10. `be_mainclass` varchar(255) NOT NULL default '',
    11. `be_optionclass` varchar(255) NOT NULL default '',
    12. `base` varchar(255) NOT NULL default '',
    13. `path` varchar(255) NOT NULL default '',
    14. `optionstring` text NOT NULL,
    15.  
    16. PRIMARY KEY (`uid`),
    17. KEY `parent` (`pid`)
    18. );
    19.  
    20. INSERT INTO `tx_tmgallery_extension` (name, be_mainclass, be_optionclass, base, path, optionstring) VALUES ('tx_tmgallery_comments', 'tmgallery_modComment', 'tmgallery_modCommentOptions', '', 'tm_gallery_comments', 'commenttplpath=;commentsperpage=5;commentpagingsep= | ');

    wenn sich nun bereits Datensätze in der Tabelle tx_tmgallery_extension befinden bevor ich diese Extension installiere, sind diese nach der Installation alle weg und nur noch das oben angeführte Insert in der Tabelle

  • stonie stonie
    Padawan
    0 x
    39 Beiträge
    0 Hilfreiche Beiträge
    03. 03. 2007, 01:12

    Spontan fallen mir dazu nur TRIGGER ein.. bin mir aber nicht sicher ob MySQL 4 Trigger erkennt.. bzw. ob Typo3 mit Triggern klarkommt.. hab ich ehrlichgesagt noch nie ausprobiert :(

    Weiß eventuell jemand mehr darüber?

  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    03. 03. 2007, 01:16

    nein, das wird nicht gehen.

    Das Problem ist, das es im Ext-Manager so kodiert ist, es gibt da nur eine Möglichkeit.

    Abhilfe schafft ev. nur ein Eintrag im Bugtracker, am Besten mit einem Lösungsvorschlag.