[13.x] Fix SQLite schema dumps containing shadow tables

Merged
JH
1mo ago
+80-0

On SQLite, php artisan schema:dump writes a dump that can't be loaded back when the database has a virtual table (FTS5, FTS4, R*Tree).

Minimal Repro:

// In a migration
DB::statement('create virtual table posts using fts5(body)');
php artisan schema:dump
php artisan migrate:fresh   # Crash

#Parse error near line 3: object name reserved for internal use: posts_data

Currently, art schema:dump includes the shadow tables of each virtual table (posts_data, posts_idx, ...). And sqlite3 CLI refuse to create shadow tables directly. This PR removes the shadow tables from the dump, similar to how #52135 removed the internal sqlite_* tables. SQLite creates them automatically when loading back the dump.

Adversarially reviewed by: Claude Fable 5.1 + GPT Astra 6 + me (Software engineer shipping with laravel since 5.2)