- Add migration 0003: recreate repository_configs with nullable version_id column and two partial unique indexes (repo-wide: version_id IS NULL, per-version: (repository_id, version_id) WHERE version_id IS NOT NULL) - Update schema.ts to reflect the new composite structure with uniqueIndex partial constraints via drizzle-orm sql helper - IndexingPipeline: parse trueref.json / context7.json after crawl, apply excludeFiles filter before diff computation, update totalFiles accordingly - IndexingPipeline: persist repo-wide rules (version_id=null) and version-specific rules (when versionId set) via upsertRepoConfig helper - Add matchesExcludePattern static helper supporting plain filename, glob prefix (docs/legacy*), and exact path patterns - context endpoint: split getRules into repo-wide + version-specific lookup with dedup merge; pass versionId at call site - Update test DB loaders to include migration 0003 - Add pipeline tests for excludeFiles, repo-wide rules persistence, and per-version rules persistence - Add integration tests for merged rules, repo-only rules, and dedup logic Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
1.3 KiB
SQL
31 lines
1.3 KiB
SQL
PRAGMA foreign_keys=OFF;
|
|
--> statement-breakpoint
|
|
CREATE TABLE `__new_repository_configs` (
|
|
`repository_id` text NOT NULL,
|
|
`version_id` text,
|
|
`project_title` text,
|
|
`description` text,
|
|
`folders` text,
|
|
`exclude_folders` text,
|
|
`exclude_files` text,
|
|
`rules` text,
|
|
`previous_versions` text,
|
|
`updated_at` integer NOT NULL,
|
|
FOREIGN KEY (`repository_id`) REFERENCES `repositories`(`id`) ON UPDATE no action ON DELETE cascade
|
|
);
|
|
--> statement-breakpoint
|
|
INSERT INTO `__new_repository_configs`
|
|
(repository_id, version_id, project_title, description, folders, exclude_folders, exclude_files, rules, previous_versions, updated_at)
|
|
SELECT repository_id, NULL, project_title, description, folders, exclude_folders, exclude_files, rules, previous_versions, updated_at
|
|
FROM `repository_configs`;
|
|
--> statement-breakpoint
|
|
DROP TABLE `repository_configs`;
|
|
--> statement-breakpoint
|
|
ALTER TABLE `__new_repository_configs` RENAME TO `repository_configs`;
|
|
--> statement-breakpoint
|
|
PRAGMA foreign_keys=ON;
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `uniq_repo_config_base` ON `repository_configs` (`repository_id`) WHERE `version_id` IS NULL;
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `uniq_repo_config_version` ON `repository_configs` (`repository_id`, `version_id`) WHERE `version_id` IS NOT NULL;
|