sqlite-utils/tests
Claude 23bc93239e
Add update_incoming_fks parameter to transform()
When renaming columns that are referenced by foreign keys in other
tables, the transform() method now accepts update_incoming_fks=True
to automatically update those FK constraints.

Implementation:
- Added _get_incoming_fks_needing_update() helper to find tables
  with FKs pointing to renamed columns
- Modified transform() to collect SQL for updating incoming FKs
- Execute main transform first (so new column exists), then update
  incoming FKs, all within the same transaction
- Added _skip_fk_validation flag to allow generating SQL for FKs
  that reference columns that don't exist yet (will exist after
  main transform completes)

Includes test for basic column rename case with FK enforcement ON.
2026-01-21 14:53:04 +00:00
..
sniff sqlite-utils insert --sniff option, closes #230 2021-02-14 11:23:12 -08:00
__init__.py Initial project layout + database table creation tools 2018-07-28 06:46:17 -07:00
conftest.py Type fixes now enforced by ty 2025-12-16 19:34:45 -08:00
ext.c Support entrypoints for --load-extension (#473) 2022-08-26 22:55:47 -07:00
test_analyze.py Use sqlean if available in environment (#560) 2023-06-25 16:25:51 -07:00
test_analyze_tables.py Database as a context manager, fixed many pytest warnings 2025-12-11 16:56:12 -08:00
test_attach.py db.attach(alias, filepath) method, closes #113 2021-02-18 20:56:32 -08:00
test_cli.py Database as a context manager, fixed many pytest warnings 2025-12-11 16:56:12 -08:00
test_cli_bulk.py --functions can take filenames, can be used multiple times (#681) 2025-11-23 21:46:51 -08:00
test_cli_convert.py Type fixes now enforced by ty 2025-12-16 19:34:45 -08:00
test_cli_insert.py Detect CSV/TSV column types by default (#683) 2025-11-23 22:23:15 -08:00
test_cli_memory.py Type fixes now enforced by ty 2025-12-16 19:34:45 -08:00
test_column_affinity.py Tracer mechanism for showing underlying SQL queries 2020-09-07 14:56:59 -07:00
test_constructor.py db.close() method, closes #504 2022-10-25 13:57:43 -07:00
test_conversions.py Now complies with flake8, refs #291 2021-06-22 18:22:08 -07:00
test_convert.py Removed convert skip_false and --skip-false, closes #542 2025-11-23 15:40:28 -08:00
test_create.py Use REAL not FLOAT as SQLite column type (#680) 2025-11-23 21:37:59 -08:00
test_create_view.py Tracer mechanism for showing underlying SQL queries 2020-09-07 14:56:59 -07:00
test_default_value.py Transform no longer breaks non-string default values 2023-05-08 14:13:36 -07:00
test_delete.py Swapped the order of a bunch of pytest comparisons 2023-08-17 18:05:13 -07:00
test_docs.py More type annotations (#697) 2025-12-16 22:11:47 -08:00
test_duplicate.py Use double quotes not braces for tables and columns (#678) 2025-11-23 20:43:26 -08:00
test_enable_counts.py Use double quotes not braces for tables and columns (#678) 2025-11-23 20:43:26 -08:00
test_extract.py Use double quotes not braces for tables and columns (#678) 2025-11-23 20:43:26 -08:00
test_extracts.py Use double quotes not braces for tables and columns (#678) 2025-11-23 20:43:26 -08:00
test_fts.py Type fixes now enforced by ty 2025-12-16 19:34:45 -08:00
test_get.py Refactored tests into new test_rows.py, refs #76 2020-04-15 18:04:55 -07:00
test_gis.py Type fixes now enforced by ty 2025-12-16 19:34:45 -08:00
test_hypothesis.py Now complies with flake8, refs #291 2021-06-22 18:22:08 -07:00
test_insert_files.py insert-files multiple --pk support, closes #621 2024-03-16 17:33:31 -07:00
test_introspect.py Database as a context manager, fixed many pytest warnings 2025-12-11 16:56:12 -08:00
test_list_mode.py table.insert_all() and table.upsert_all() now take generators of lists/tuples 2025-11-23 12:17:23 -08:00
test_lookup.py Use double quotes not braces for tables and columns (#678) 2025-11-23 20:43:26 -08:00
test_m2m.py Swapped the order of a bunch of pytest comparisons 2023-08-17 18:05:13 -07:00
test_plugins.py Database as a context manager, fixed many pytest warnings 2025-12-11 16:56:12 -08:00
test_query.py Tests for db.query() method, refs #290 2021-06-22 10:43:49 -07:00
test_recipes.py table.insert_all() and table.upsert_all() now take generators of lists/tuples 2025-11-23 12:17:23 -08:00
test_recreate.py Database as a context manager, fixed many pytest warnings 2025-12-11 16:56:12 -08:00
test_register_function.py Database as a context manager, fixed many pytest warnings 2025-12-11 16:56:12 -08:00
test_rows.py Now complies with flake8, refs #291 2021-06-22 18:22:08 -07:00
test_rows_from_file.py Type fixes now enforced by ty 2025-12-16 19:34:45 -08:00
test_sniff.py Detect CSV/TSV column types by default (#683) 2025-11-23 22:23:15 -08:00
test_suggest_column_types.py Fixed bug with null columns, closes #95 2020-03-23 13:31:06 -07:00
test_tracer.py More type annotations (#697) 2025-12-16 22:11:47 -08:00
test_transform.py Add update_incoming_fks parameter to transform() 2026-01-21 14:53:04 +00:00
test_update.py Use double quotes not braces for tables and columns (#678) 2025-11-23 20:43:26 -08:00
test_upsert.py Use ON CONFLICT for upsert, refs #652 2025-05-08 20:37:49 -07:00
test_utils.py sqlite_utils.utils.flatten() function, closes #500 2022-10-18 11:00:35 -07:00
test_wal.py Now complies with flake8, refs #291 2021-06-22 18:22:08 -07:00