feat(db): SQLite schema and movie migrations (#48)
This commit was merged in pull request #48.
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
-- The two movie roots and their policies, DESIGN.md §5.1. Paths follow §7.4:
|
||||
-- media kind first, audience second.
|
||||
--
|
||||
-- Policy lives in the database rather than config (§10) because these numbers
|
||||
-- get tuned by hand. The size bands are placeholders pending the remux
|
||||
-- playback test in §14; the model is the decision, not the constants.
|
||||
|
||||
INSERT INTO policies (
|
||||
name, required_audio, dub_blacklist, hdr_rules,
|
||||
size_bands, resolution_pref, source_weights
|
||||
) VALUES (
|
||||
'Movies — main',
|
||||
-- §5.2. Require a track in the title's own original language. Anything
|
||||
-- else may ride along.
|
||||
json('{"require":"original_language","allow_english_fallback":false}'),
|
||||
json('["pt-BR"]'),
|
||||
-- §5.3. Profile 5 has no HDR10 base layer and Profile 7 depends on the
|
||||
-- player. Profile 8.1 plays as HDR10 and is fine.
|
||||
json('{"dv_profile_allow":["8.1"],"dv_profile_reject":["5","7"],"allow_hdr10":true,"allow_hdr10plus":true,"allow_sdr":true}'),
|
||||
-- Floors matter: unbounded "smaller is better" picks a 3 GB 4K encode
|
||||
-- that looks like mud.
|
||||
json('{"2160p":{"floor_gb":8,"target_gb":22,"penalty_per_gb_over":0.5},"1080p":{"floor_gb":3,"target_gb":8,"penalty_per_gb_over":0.5}}'),
|
||||
json('["2160p","1080p"]'),
|
||||
json('{"Remux":4,"BluRay":3,"WEB-DL":2,"WEBRip":1,"HDTV":0}')
|
||||
), (
|
||||
'Movies — kids',
|
||||
-- §5.2. pt-PT, or the original language when that is already Portuguese.
|
||||
-- pt-BR never satisfies this.
|
||||
json('{"require":"any_of","langs":["pt-PT"],"or_original_when_portuguese":true,"allow_english_fallback":false}'),
|
||||
json('["pt-BR"]'),
|
||||
json('{"dv_profile_allow":["8.1"],"dv_profile_reject":["5","7"],"allow_hdr10":true,"allow_hdr10plus":true,"allow_sdr":true}'),
|
||||
json('{"2160p":{"floor_gb":8,"target_gb":22,"penalty_per_gb_over":0.5},"1080p":{"floor_gb":3,"target_gb":8,"penalty_per_gb_over":0.5}}'),
|
||||
json('["2160p","1080p"]'),
|
||||
-- §5.2. European Portuguese dubs live in streaming WEB-DLs and
|
||||
-- essentially never in BluRay encodes, so this root biases hard that way.
|
||||
json('{"WEB-DL":4,"WEBRip":2,"BluRay":1,"Remux":1,"HDTV":0}')
|
||||
);
|
||||
|
||||
INSERT INTO roots (kind, audience, path, policy_id)
|
||||
SELECT 'movie', 'main', '/mnt/media/movies/main', id
|
||||
FROM policies WHERE name = 'Movies — main';
|
||||
|
||||
INSERT INTO roots (kind, audience, path, policy_id)
|
||||
SELECT 'movie', 'kids', '/mnt/media/movies/kids', id
|
||||
FROM policies WHERE name = 'Movies — kids';
|
||||
Reference in New Issue
Block a user