From a25e83841f2703afb08aff4589cb559ae9060776 Mon Sep 17 00:00:00 2001
From: Jacob Chapman <7908073+chapmanjacobd@users.noreply.github.com>
Date: Tue, 11 Oct 2022 15:35:03 -0500
Subject: [PATCH] feat: recreate fts triggers after table transform

https://github.com/simonw/sqlite-utils/pull/498
---
 sqlite_utils/db.py | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/sqlite_utils/db.py b/sqlite_utils/db.py
index 27c46b0af..08fc5248f 100644
--- a/sqlite_utils/db.py
+++ b/sqlite_utils/db.py
@@ -1622,6 +1622,7 @@ def transform(
           to use when creating the table.
         """
         assert self.exists(), "Cannot transform a table that doesn't exist yet"
+        fts_table = self.detect_fts()
         sqls = self.transform_sql(
             types=types,
             rename=rename,
@@ -1632,6 +1633,10 @@ def transform(
             drop_foreign_keys=drop_foreign_keys,
             column_order=column_order,
         )
+        if fts_table:
+            fts_columns = [c.name for c in self.db[fts_table].columns if c.name not in drop]
+            fts_columns_renamed = [renamed[c] if c in renamed else c for c in fts_columns]
+            self.enable_fts(fts_columns_renamed, replace=True)
         pragma_foreign_keys_was_on = self.db.execute("PRAGMA foreign_keys").fetchone()[
             0
         ]