Open-source multiplayer game server compatible with the RuneScape client
https://www.openrs2.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.1 KiB
95 lines
2.1 KiB
-- @formatter:off
|
|
|
|
CREATE EXTENSION IF NOT EXISTS pgcrypto;
|
|
|
|
ALTER TABLE blobs ADD COLUMN sha1 BYTEA NULL;
|
|
|
|
UPDATE blobs SET sha1 = digest(data, 'sha1');
|
|
|
|
ALTER TABLE blobs ALTER COLUMN sha1 SET NOT NULL;
|
|
|
|
-- not UNIQUE as SHA-1 collisions are possible
|
|
CREATE INDEX ON blobs USING HASH (sha1);
|
|
|
|
INSERT INTO scopes (name) VALUES ('shared');
|
|
INSERT INTO games (name, scope_id) VALUES ('shared', (SELECT id FROM scopes WHERE name = 'shared'));
|
|
|
|
INSERT INTO scopes (name) VALUES ('classic');
|
|
INSERT INTO games (name, scope_id) VALUES ('classic', (SELECT id FROM scopes WHERE name = 'classic'));
|
|
|
|
INSERT INTO scopes (name) VALUES ('mapview');
|
|
INSERT INTO games (name, scope_id) VALUES ('mapview', (SELECT id FROM scopes WHERE name = 'mapview'));
|
|
|
|
CREATE TYPE artifact_type AS ENUM (
|
|
'browsercontrol',
|
|
'client',
|
|
'client_gl',
|
|
'gluegen_rt',
|
|
'jaggl',
|
|
'jaggl_dri',
|
|
'jagmisc',
|
|
'jogl',
|
|
'jogl_awt',
|
|
'loader',
|
|
'loader_gl',
|
|
'unpackclass'
|
|
);
|
|
|
|
CREATE TYPE artifact_format AS ENUM (
|
|
'cab',
|
|
'jar',
|
|
'native',
|
|
'pack200',
|
|
'packclass'
|
|
);
|
|
|
|
CREATE TYPE os AS ENUM (
|
|
'independent',
|
|
'windows',
|
|
'macos',
|
|
'linux',
|
|
'solaris'
|
|
);
|
|
|
|
CREATE TYPE arch AS ENUM (
|
|
'independent',
|
|
'universal',
|
|
'x86',
|
|
'amd64',
|
|
'powerpc',
|
|
'sparc',
|
|
'sparcv9'
|
|
);
|
|
|
|
CREATE TYPE jvm AS ENUM (
|
|
'independent',
|
|
'sun',
|
|
'microsoft'
|
|
);
|
|
|
|
CREATE TABLE artifacts (
|
|
blob_id BIGINT PRIMARY KEY NOT NULL REFERENCES blobs (id),
|
|
game_id INTEGER NOT NULL REFERENCES games (id),
|
|
environment_id INTEGER NOT NULL REFERENCES environments (id),
|
|
build_major INTEGER NULL,
|
|
build_minor INTEGER NULL,
|
|
timestamp TIMESTAMPTZ NULL,
|
|
type artifact_type NOT NULL,
|
|
format artifact_format NOT NULL,
|
|
os os NOT NULL,
|
|
arch arch NOT NULL,
|
|
jvm jvm NOT NULL
|
|
);
|
|
|
|
CREATE TABLE artifact_links (
|
|
blob_id BIGINT NOT NULL REFERENCES artifacts (blob_id),
|
|
type artifact_type NOT NULL,
|
|
format artifact_format NOT NULL,
|
|
os os NOT NULL,
|
|
arch arch NOT NULL,
|
|
jvm jvm NOT NULL,
|
|
sha1 BYTEA NOT NULL,
|
|
crc32 INTEGER NULL,
|
|
size INTEGER NULL,
|
|
PRIMARY KEY (blob_id, type, format, os, arch, jvm)
|
|
);
|
|
|