feat:移除了弹窗,服务器添加sls
This commit is contained in:
@ -0,0 +1,376 @@
|
||||
CREATE TABLE instances (
|
||||
id TEXT NOT NULL,
|
||||
path TEXT NOT NULL,
|
||||
applied_content_set_id TEXT NULL,
|
||||
|
||||
install_stage TEXT NOT NULL,
|
||||
launcher_feature_version TEXT NOT NULL,
|
||||
update_channel TEXT NOT NULL DEFAULT 'release',
|
||||
|
||||
name TEXT NOT NULL,
|
||||
icon_path TEXT NULL,
|
||||
|
||||
created INTEGER NOT NULL,
|
||||
modified INTEGER NOT NULL,
|
||||
last_played INTEGER NULL,
|
||||
|
||||
submitted_time_played INTEGER NOT NULL DEFAULT 0,
|
||||
recent_time_played INTEGER NOT NULL DEFAULT 0,
|
||||
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE (path)
|
||||
);
|
||||
|
||||
CREATE INDEX instances_path ON instances(path);
|
||||
CREATE INDEX instances_applied_content_set_id
|
||||
ON instances(applied_content_set_id);
|
||||
|
||||
CREATE TABLE instance_links (
|
||||
instance_id TEXT NOT NULL,
|
||||
link_kind TEXT NOT NULL,
|
||||
|
||||
modrinth_project_id TEXT NULL,
|
||||
modrinth_version_id TEXT NULL,
|
||||
|
||||
server_project_id TEXT NULL,
|
||||
|
||||
content_project_id TEXT NULL,
|
||||
content_version_id TEXT NULL,
|
||||
|
||||
hosting_server_id TEXT NULL,
|
||||
hosting_instance_ids JSONB NULL,
|
||||
hosting_active_instance_id TEXT NULL,
|
||||
|
||||
shared_instance_id TEXT NULL,
|
||||
|
||||
PRIMARY KEY (instance_id),
|
||||
FOREIGN KEY (instance_id) REFERENCES instances(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX instance_links_link_kind ON instance_links(link_kind);
|
||||
CREATE INDEX instance_links_modrinth_project_id
|
||||
ON instance_links(modrinth_project_id);
|
||||
CREATE INDEX instance_links_server_project_id
|
||||
ON instance_links(server_project_id);
|
||||
CREATE INDEX instance_links_hosting_server_id
|
||||
ON instance_links(hosting_server_id);
|
||||
CREATE INDEX instance_links_hosting_active_instance_id
|
||||
ON instance_links(hosting_active_instance_id);
|
||||
CREATE INDEX instance_links_shared_instance_id
|
||||
ON instance_links(shared_instance_id);
|
||||
|
||||
CREATE TABLE instance_groups (
|
||||
instance_id TEXT NOT NULL,
|
||||
group_name TEXT NOT NULL,
|
||||
|
||||
PRIMARY KEY (instance_id, group_name),
|
||||
FOREIGN KEY (instance_id) REFERENCES instances(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX instance_groups_group_name ON instance_groups(group_name);
|
||||
|
||||
CREATE TABLE instance_launch_overrides (
|
||||
instance_id TEXT NOT NULL,
|
||||
overrides JSONB NOT NULL,
|
||||
|
||||
PRIMARY KEY (instance_id),
|
||||
FOREIGN KEY (instance_id) REFERENCES instances(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE instance_content_sets (
|
||||
id TEXT NOT NULL,
|
||||
instance_id TEXT NOT NULL,
|
||||
|
||||
name TEXT NOT NULL,
|
||||
source_kind TEXT NOT NULL,
|
||||
status TEXT NOT NULL,
|
||||
|
||||
game_version TEXT NOT NULL,
|
||||
protocol_version INTEGER NULL,
|
||||
loader TEXT NOT NULL,
|
||||
loader_version TEXT NULL,
|
||||
|
||||
created INTEGER NOT NULL,
|
||||
modified INTEGER NOT NULL,
|
||||
|
||||
PRIMARY KEY (id),
|
||||
FOREIGN KEY (instance_id) REFERENCES instances(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX instance_content_sets_instance_id
|
||||
ON instance_content_sets(instance_id);
|
||||
|
||||
CREATE TABLE instance_content_set_remote_refs (
|
||||
content_set_id TEXT NOT NULL,
|
||||
ref_type TEXT NOT NULL,
|
||||
ref_id TEXT NOT NULL,
|
||||
|
||||
PRIMARY KEY (content_set_id, ref_type),
|
||||
FOREIGN KEY (content_set_id)
|
||||
REFERENCES instance_content_sets(id)
|
||||
ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX instance_content_set_remote_refs_ref
|
||||
ON instance_content_set_remote_refs(ref_type, ref_id);
|
||||
|
||||
CREATE TABLE instance_content_set_sync_state (
|
||||
content_set_id TEXT NOT NULL,
|
||||
provider TEXT NOT NULL,
|
||||
|
||||
applied_update_id TEXT NULL,
|
||||
latest_available_update_id TEXT NULL,
|
||||
checked_at INTEGER NULL,
|
||||
status TEXT NOT NULL,
|
||||
|
||||
PRIMARY KEY (content_set_id),
|
||||
FOREIGN KEY (content_set_id)
|
||||
REFERENCES instance_content_sets(id)
|
||||
ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX instance_content_set_sync_state_provider
|
||||
ON instance_content_set_sync_state(provider);
|
||||
|
||||
CREATE INDEX instance_content_set_sync_state_latest_available_update_id
|
||||
ON instance_content_set_sync_state(latest_available_update_id);
|
||||
|
||||
CREATE TABLE instance_files (
|
||||
id TEXT NOT NULL,
|
||||
instance_id TEXT NOT NULL,
|
||||
|
||||
relative_path TEXT NOT NULL,
|
||||
file_name TEXT NOT NULL,
|
||||
enabled INTEGER NOT NULL,
|
||||
|
||||
sha1 TEXT NOT NULL,
|
||||
size INTEGER NOT NULL,
|
||||
missing INTEGER NOT NULL DEFAULT 0,
|
||||
|
||||
added_at INTEGER NOT NULL,
|
||||
modified_at INTEGER NOT NULL,
|
||||
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE (instance_id, relative_path),
|
||||
FOREIGN KEY (instance_id) REFERENCES instances(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX instance_files_instance_id ON instance_files(instance_id);
|
||||
CREATE INDEX instance_files_sha1 ON instance_files(sha1);
|
||||
CREATE INDEX instance_files_missing ON instance_files(missing);
|
||||
|
||||
CREATE TABLE instance_content_entries (
|
||||
id TEXT NOT NULL,
|
||||
instance_id TEXT NOT NULL,
|
||||
content_set_id TEXT NOT NULL,
|
||||
file_id TEXT NULL,
|
||||
|
||||
project_type TEXT NOT NULL,
|
||||
project_id TEXT NULL,
|
||||
version_id TEXT NULL,
|
||||
|
||||
source_kind TEXT NOT NULL,
|
||||
server_requirement TEXT NOT NULL,
|
||||
client_requirement TEXT NOT NULL,
|
||||
enabled INTEGER NOT NULL DEFAULT 1,
|
||||
|
||||
added_at INTEGER NOT NULL,
|
||||
modified_at INTEGER NOT NULL,
|
||||
|
||||
PRIMARY KEY (id),
|
||||
FOREIGN KEY (instance_id) REFERENCES instances(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (content_set_id)
|
||||
REFERENCES instance_content_sets(id)
|
||||
ON DELETE CASCADE,
|
||||
FOREIGN KEY (file_id) REFERENCES instance_files(id) ON DELETE SET NULL
|
||||
);
|
||||
|
||||
CREATE INDEX instance_content_entries_instance_id
|
||||
ON instance_content_entries(instance_id);
|
||||
CREATE INDEX instance_content_entries_content_set_id
|
||||
ON instance_content_entries(content_set_id);
|
||||
CREATE INDEX instance_content_entries_file_id
|
||||
ON instance_content_entries(file_id);
|
||||
CREATE INDEX instance_content_entries_project_id
|
||||
ON instance_content_entries(project_id);
|
||||
CREATE INDEX instance_content_entries_version_id
|
||||
ON instance_content_entries(version_id);
|
||||
CREATE INDEX instance_content_entries_source_kind
|
||||
ON instance_content_entries(source_kind);
|
||||
|
||||
CREATE TABLE instance_content_update_checks (
|
||||
content_entry_id TEXT NOT NULL,
|
||||
|
||||
update_channel TEXT NOT NULL,
|
||||
update_version_id TEXT NULL,
|
||||
checked_at INTEGER NOT NULL,
|
||||
|
||||
PRIMARY KEY (content_entry_id),
|
||||
FOREIGN KEY (content_entry_id)
|
||||
REFERENCES instance_content_entries(id)
|
||||
ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX instance_content_update_checks_update_version_id
|
||||
ON instance_content_update_checks(update_version_id);
|
||||
|
||||
INSERT INTO instances (
|
||||
id,
|
||||
path,
|
||||
applied_content_set_id,
|
||||
install_stage,
|
||||
launcher_feature_version,
|
||||
update_channel,
|
||||
name,
|
||||
icon_path,
|
||||
created,
|
||||
modified,
|
||||
last_played,
|
||||
submitted_time_played,
|
||||
recent_time_played
|
||||
)
|
||||
SELECT
|
||||
'legacy:' || path,
|
||||
path,
|
||||
'legacy:' || path || ':default',
|
||||
install_stage,
|
||||
launcher_feature_version,
|
||||
preferred_update_channel,
|
||||
name,
|
||||
icon_path,
|
||||
created,
|
||||
modified,
|
||||
last_played,
|
||||
submitted_time_played,
|
||||
recent_time_played
|
||||
FROM profiles;
|
||||
|
||||
INSERT INTO instance_content_sets (
|
||||
id,
|
||||
instance_id,
|
||||
name,
|
||||
source_kind,
|
||||
status,
|
||||
game_version,
|
||||
protocol_version,
|
||||
loader,
|
||||
loader_version,
|
||||
created,
|
||||
modified
|
||||
)
|
||||
SELECT
|
||||
'legacy:' || path || ':default',
|
||||
'legacy:' || path,
|
||||
'Default',
|
||||
CASE
|
||||
WHEN linked_project_id IS NOT NULL
|
||||
AND linked_version_id IS NOT NULL
|
||||
AND linked_version_id != ''
|
||||
THEN 'modrinth_modpack'
|
||||
WHEN linked_project_id IS NOT NULL
|
||||
AND (linked_version_id IS NULL OR linked_version_id = '')
|
||||
THEN 'server_project'
|
||||
ELSE 'local'
|
||||
END,
|
||||
'available',
|
||||
game_version,
|
||||
protocol_version,
|
||||
mod_loader,
|
||||
mod_loader_version,
|
||||
created,
|
||||
modified
|
||||
FROM profiles;
|
||||
|
||||
INSERT INTO instance_links (
|
||||
instance_id,
|
||||
link_kind,
|
||||
modrinth_project_id,
|
||||
modrinth_version_id,
|
||||
server_project_id,
|
||||
content_project_id,
|
||||
content_version_id,
|
||||
hosting_server_id,
|
||||
hosting_instance_ids,
|
||||
hosting_active_instance_id,
|
||||
shared_instance_id
|
||||
)
|
||||
SELECT
|
||||
'legacy:' || path,
|
||||
CASE
|
||||
WHEN linked_project_id IS NULL
|
||||
THEN 'unmanaged'
|
||||
WHEN linked_version_id IS NULL OR linked_version_id = ''
|
||||
THEN 'server_project'
|
||||
ELSE 'modrinth_modpack'
|
||||
END,
|
||||
CASE
|
||||
WHEN linked_version_id IS NOT NULL AND linked_version_id != ''
|
||||
THEN linked_project_id
|
||||
ELSE NULL
|
||||
END,
|
||||
CASE
|
||||
WHEN linked_version_id IS NOT NULL AND linked_version_id != ''
|
||||
THEN linked_version_id
|
||||
ELSE NULL
|
||||
END,
|
||||
CASE
|
||||
WHEN linked_project_id IS NOT NULL
|
||||
AND (linked_version_id IS NULL OR linked_version_id = '')
|
||||
THEN linked_project_id
|
||||
ELSE NULL
|
||||
END,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
FROM profiles;
|
||||
|
||||
INSERT OR IGNORE INTO instance_groups (instance_id, group_name)
|
||||
SELECT
|
||||
'legacy:' || profiles.path,
|
||||
json_each.value
|
||||
FROM profiles, json_each(profiles.groups);
|
||||
|
||||
INSERT INTO instance_launch_overrides (
|
||||
instance_id,
|
||||
overrides
|
||||
)
|
||||
SELECT
|
||||
'legacy:' || path,
|
||||
jsonb(json_object(
|
||||
'java_path', override_java_path,
|
||||
'extra_launch_args', json(CASE
|
||||
WHEN json_type(override_extra_launch_args) = 'null' THEN 'null'
|
||||
ELSE json(override_extra_launch_args)
|
||||
END),
|
||||
'custom_env_vars', json(CASE
|
||||
WHEN json_type(override_custom_env_vars) = 'null' THEN 'null'
|
||||
ELSE json(override_custom_env_vars)
|
||||
END),
|
||||
'memory', json(CASE
|
||||
WHEN override_mc_memory_max IS NULL THEN 'null'
|
||||
ELSE json_object('maximum', override_mc_memory_max)
|
||||
END),
|
||||
'force_fullscreen', json(CASE
|
||||
WHEN override_mc_force_fullscreen IS NULL THEN 'null'
|
||||
WHEN override_mc_force_fullscreen = 0 THEN 'false'
|
||||
ELSE 'true'
|
||||
END),
|
||||
'game_resolution', json(CASE
|
||||
WHEN override_mc_game_resolution_x IS NULL
|
||||
OR override_mc_game_resolution_y IS NULL
|
||||
THEN 'null'
|
||||
ELSE json_array(
|
||||
override_mc_game_resolution_x,
|
||||
override_mc_game_resolution_y
|
||||
)
|
||||
END),
|
||||
'hooks', json_object(
|
||||
'pre_launch', COALESCE(override_hook_pre_launch, ''),
|
||||
'wrapper', COALESCE(override_hook_wrapper, ''),
|
||||
'post_exit', COALESCE(override_hook_post_exit, '')
|
||||
)
|
||||
))
|
||||
FROM profiles;
|
||||
Reference in New Issue
Block a user