yakamara / ydeploy

Deployment von REDAXO-Projekten
MIT License
21 stars 6 forks source link

ydeploy:migrate - FULLTEXT Indexes benötigen einzelnes ALTER #16

Closed tbaddade closed 6 years ago

tbaddade commented 6 years ago
Error while executing statement "ALTER TABLE `rex_search_it_index`                                                                                                                           
        ADD INDEX `fid` (`fid`),                                                                                                                                                                 
        ADD FULLTEXT `plaintext` (`plaintext`),                                                                                                                                                  
        ADD FULLTEXT `unchangedtext` (`unchangedtext`),                                                                                                                                          
        ADD FULLTEXT `plaintext_2` (`plaintext`, `unchangedtext`);"! SQLSTATE[HY000]: General error: 1795 InnoDB presently supports one FULLTEXT index creation at a time 

Sonst klappt das migrieren nicht.

tbaddade commented 6 years ago

Durch folgende Änderung der migration Datei ging es dann:

Vorher

    rex_sql_table::get('rex_search_it_index')
        ->ensureIndex(new rex_sql_index('fid', ['fid']))
        ->ensureIndex(new rex_sql_index('plaintext', ['plaintext'], rex_sql_index::FULLTEXT))
        ->ensureIndex(new rex_sql_index('unchangedtext', ['unchangedtext'], rex_sql_index::FULLTEXT))
        ->ensureIndex(new rex_sql_index('plaintext_2', ['plaintext', 'unchangedtext'], rex_sql_index::FULLTEXT))
        ->alter();

Nachher

    rex_sql_table::get('rex_search_it_index')
        ->ensureIndex(new rex_sql_index('fid', ['fid']))
        ->alter();
    rex_sql_table::get('rex_search_it_index')
        ->ensureIndex(new rex_sql_index('plaintext', ['plaintext'], rex_sql_index::FULLTEXT))
        ->alter();
    rex_sql_table::get('rex_search_it_index')
        ->ensureIndex(new rex_sql_index('unchangedtext', ['unchangedtext'], rex_sql_index::FULLTEXT))
        ->alter();
    rex_sql_table::get('rex_search_it_index')
        ->ensureIndex(new rex_sql_index('plaintext_2', ['plaintext', 'unchangedtext'], rex_sql_index::FULLTEXT))
        ->alter();
staabm commented 6 years ago

ohh interessant. ist vermutlich ein rex_sql_table (d.h. redaxo-core problem)

gharlan commented 6 years ago

ist vermutlich ein rex_sql_table (d.h. redaxo-core problem)

So ist es, das sollte rex_sql_table intern lösen.

gharlan commented 6 years ago

https://github.com/redaxo/redaxo/issues/1630