chiark / gitweb /
Initial commit.
[dvddb] / create-v3
1 #! /usr/bin/perl -w
2
3 use open ":utf8";
4 use strict;
5
6 use DBI;
7 use Encode qw{encode_utf8 decode_utf8};
8 use File::Find;
9
10 BEGIN { binmode STDOUT, ":utf8"; }
11
12 my $ROOT = "/mnt/dvd/archive";
13 my $DB = DBI->connect("dbi:Pg:host=roadstar", "", "",
14                       { AutoCommit => 0,
15                         RaiseError => 1 });
16
17 $DB->do("
18         CREATE SEQUENCE dvd_set_id MINVALUE 0;
19
20         CREATE TABLE dvd_set
21                 (id INTEGER
22                         PRIMARY KEY
23                         NOT NULL
24                         DEFAULT (nextval('dvd_set_id')),
25                  name TEXT,
26                  ndisc TEXT);
27         CREATE UNIQUE INDEX dvd_set_by_name ON dvd_set (name);
28
29         CREATE TABLE dvd_disc
30                 (set_id INTEGER NOT NULL,
31                  disc INTEGER NOT NULL,
32                  path TEXT NOT NULL,
33                  disc_id TEXT DEFAULT NULL,
34                  PRIMARY KEY (set_id, disc));
35         CREATE INDEX dvd_disc_by_path ON dvd_disc (path);
36         CREATE INDEX dvd_disc_by_id ON dvd_disc (disc_id);
37 ");
38
39 $DB->commit; $DB->disconnect;