50 lines
1.2 KiB
SQL
50 lines
1.2 KiB
SQL
ALTER TABLE instance_links
|
|
ADD COLUMN curseforge_project_id INTEGER NULL;
|
|
|
|
ALTER TABLE instance_links
|
|
ADD COLUMN curseforge_file_id INTEGER NULL;
|
|
|
|
CREATE INDEX instance_links_curseforge_project_id
|
|
ON instance_links(curseforge_project_id);
|
|
|
|
CREATE TABLE instance_content_provider_refs (
|
|
content_entry_id TEXT NOT NULL,
|
|
provider TEXT NOT NULL,
|
|
project_id TEXT NOT NULL,
|
|
version_id TEXT NULL,
|
|
primary_ref INTEGER NOT NULL DEFAULT 0,
|
|
|
|
PRIMARY KEY (content_entry_id, provider),
|
|
FOREIGN KEY (content_entry_id)
|
|
REFERENCES instance_content_entries(id)
|
|
ON DELETE CASCADE,
|
|
CHECK (provider IN ('modrinth', 'curseforge')),
|
|
CHECK (primary_ref IN (0, 1))
|
|
);
|
|
|
|
CREATE INDEX instance_content_provider_refs_project
|
|
ON instance_content_provider_refs(provider, project_id);
|
|
|
|
CREATE INDEX instance_content_provider_refs_version
|
|
ON instance_content_provider_refs(provider, version_id);
|
|
|
|
CREATE UNIQUE INDEX instance_content_provider_refs_primary
|
|
ON instance_content_provider_refs(content_entry_id)
|
|
WHERE primary_ref = 1;
|
|
|
|
INSERT OR IGNORE INTO instance_content_provider_refs (
|
|
content_entry_id,
|
|
provider,
|
|
project_id,
|
|
version_id,
|
|
primary_ref
|
|
)
|
|
SELECT
|
|
id,
|
|
'modrinth',
|
|
project_id,
|
|
version_id,
|
|
1
|
|
FROM instance_content_entries
|
|
WHERE project_id IS NOT NULL;
|