/**
* Migration: Add FULLTEXT index on ObjectBase.FullTextIndex
*
* ObjectBase hat das Feld `FullTextIndex`, aber bisher keinen FULLTEXT-Index darauf.
* Dadurch versagen MATCH...AGAINST Queries mit "Can't find FULLTEXT index matching the column list".
*
* Diese Migration:
* 1. Setzt system_versioning_alter_history = KEEP (ObjectBase ist system-versioned)
* 2. Erstellt einen FULLTEXT-Index auf `FullTextIndex`
*/
export const id = '20260619-objectbase-fulltext-index';
export const name = 'Add FULLTEXT index on ObjectBase.FullTextIndex';
/**
* @param {{ query: Function }} api
*/
export const migrate = async ({ query }) => {
// Prüfen ob der Index bereits existiert (idempotent)
const existing = await query(`
SELECT INDEX_NAME FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = (SELECT DATABASE())
AND TABLE_NAME = 'ObjectBase'
AND INDEX_NAME = 'idx_ft_fulltext'
`, []);
if (existing.length > 0) {
console.log(' Index idx_ft_fulltext exists already, skipping');
return;
}
// Erforderlich für ALTER an system-versioned Tabellen
await query(`SET @@session.system_versioning_alter_history = KEEP`, []);
await query(`
ALTER TABLE ObjectBase
ADD FULLTEXT INDEX idx_ft_fulltext (FullTextIndex)
`, []);
};