source: trunk/cgi-bin/ipdb-2.7-3.0.sql@ 805

Last change on this file since 805 was 794, checked in by Kris Deugau, 9 years ago

/trunk

Refine tabledef for backup table

File size: 3.8 KB
RevLine 
[658]1-- Baseline SQL to add necessary fields for IPDB 2.7 -> IPDB 3.0
2-- Note some data changes must be made via script.
3
4-- WARNING: This SQL is backwards-compatible, but once db-update.pl
5-- has run, IPDB v2.7 and older will NOT be able to properly manipulate
6-- the data!
7
[762]8-- Flag table for deciding if we can usefully do rDNS RPC calls.
9CREATE TABLE dnsavail (
10 "zone" cidr PRIMARY KEY,
11 "location" varchar(2) DEFAULT '',
12 parent_alloc integer NOT NULL
13);
14
[779]15-- Store backup fields in a separate table
16CREATE TABLE backuplist (
17 backup_id serial NOT NULL,
18 bkbrand text,
19 bkmodel text,
20 bktype text,
21 bkport integer,
22 bksrc text,
23 bkuser text,
24 bkvpass text,
25 bkepass text,
[794]26 bkip inet
[779]27);
28
[658]29-- Master and routed blocks now live in the allocations table.
30
31ALTER TABLE allocations ADD COLUMN vrf text NOT NULL DEFAULT '';
[691]32ALTER TABLE allocations ADD COLUMN vlan text NOT NULL DEFAULT '';
[658]33ALTER TABLE allocations ADD COLUMN rdns text NOT NULL DEFAULT '';
34ALTER TABLE allocations ADD COLUMN parent_id integer NOT NULL DEFAULT 0;
35ALTER TABLE allocations ADD COLUMN master_id integer NOT NULL DEFAULT 0;
[779]36ALTER TABLE allocations ADD COLUMN backup_id integer NOT NULL DEFAULT 0;
[658]37ALTER TABLE allocations DROP CONSTRAINT allocations_pkey;
38ALTER TABLE allocations ADD COLUMN id serial PRIMARY KEY;
[779]39-- not certain this is right
[762]40CREATE UNIQUE INDEX allocations_skey ON allocations (cidr,vrf,type);
[658]41
42ALTER TABLE freeblocks ADD COLUMN vrf text NOT NULL DEFAULT '';
43ALTER TABLE freeblocks ADD COLUMN parent_id integer NOT NULL DEFAULT 0;
44ALTER TABLE freeblocks ADD COLUMN master_id integer NOT NULL DEFAULT 0;
[762]45ALTER TABLE freeblocks ADD COLUMN reserve_for integer NOT NULL DEFAULT 0;
[658]46ALTER TABLE freeblocks DROP CONSTRAINT freeblocks_pkey;
47ALTER TABLE freeblocks ADD CONSTRAINT freeblocks_pkey PRIMARY KEY ("cidr","parent_id");
48ALTER TABLE freeblocks ADD COLUMN id serial;
49
50ALTER TABLE poolips ADD COLUMN vrf text NOT NULL DEFAULT '';
[691]51ALTER TABLE poolips ADD COLUMN vlan text NOT NULL DEFAULT '';
[658]52ALTER TABLE poolips ADD COLUMN rdns text NOT NULL DEFAULT '';
53ALTER TABLE poolips ADD COLUMN parent_id integer NOT NULL DEFAULT 0;
54ALTER TABLE poolips ADD COLUMN master_id integer NOT NULL DEFAULT 0;
[779]55ALTER TABLE poolips ADD COLUMN backup_id integer NOT NULL DEFAULT 0;
[658]56ALTER TABLE poolips DROP CONSTRAINT poolips_pkey;
57ALTER TABLE poolips ADD COLUMN id serial;
58ALTER TABLE poolips ADD CONSTRAINT poolips_pkey PRIMARY KEY ("ip", "parent_id");
59
60-- probably need some more indexes
61
[670]62-- Need some additional fields to support search output. Might arguably
63-- move pool IPs into the allocations table; we'll see.
64DROP VIEW searchme;
[792]65-- do these here, because we can't do them while the view is defined
66ALTER TABLE allocations ALTER COLUMN description TYPE varchar(128);
67ALTER TABLE poolips ALTER COLUMN description TYPE varchar(128);
[670]68CREATE VIEW "searchme" AS
69 SELECT allocations.cidr, allocations.custid, allocations."type", allocations.city,
[691]70 allocations.description, allocations.notes, allocations.circuitid, allocations.vrf,
71 allocations.vlan, allocations.id, allocations.parent_id, 'n' AS available
[670]72 FROM allocations
73 UNION
74 SELECT poolips.ip, poolips.custid, poolips.type, poolips.city,
[691]75 poolips.description, poolips.notes, poolips.circuitid, poolips.vrf,
76 poolips.vlan, poolips.id, poolips.parent_id, poolips.available
[670]77 FROM poolips;
78
[658]79-- Relabel a few types to match the new structure
80UPDATE alloctypes SET listname='Routing aggregation', dispname='Routing aggregation' WHERE type='rm';
81
82-- Not critical but the previous definitions were too restrictive (eg, can't
83-- handle MD5, or SHA password hashes). Plans for ACLs also require larger fields.
84ALTER TABLE users ALTER COLUMN username TYPE varchar(256);
85ALTER TABLE users ALTER COLUMN password TYPE varchar(256);
86ALTER TABLE users ALTER COLUMN acl TYPE varchar(256);
Note: See TracBrowser for help on using the repository browser.