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

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

/trunk

Roll up SQL definition updates

  • extend length of description field on allocations and poolips
  • create VRF table
File size: 4.2 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
[807]29-- VRFs are now the apex entity
30CREATE TABLE vrfs (
31 vrf varchar(32) DEFAULT '' NOT NULL,
32 comment text DEFAULT '' NOT NULL,
33 location varchar(4) DEFAULT '' NOT NULL
34);
35
36ALTER TABLE ONLY vrfs
37 ADD CONSTRAINT vrfs_pkey PRIMARY KEY (vrf);
38
39-- need a default VRF to stuff everything into to start with
40INSERT INTO vrfs (vrf,comment) VALUES ('DEFAULT','Initial default VRF');
41
[658]42-- Master and routed blocks now live in the allocations table.
43
44ALTER TABLE allocations ADD COLUMN vrf text NOT NULL DEFAULT '';
[691]45ALTER TABLE allocations ADD COLUMN vlan text NOT NULL DEFAULT '';
[658]46ALTER TABLE allocations ADD COLUMN rdns text NOT NULL DEFAULT '';
47ALTER TABLE allocations ADD COLUMN parent_id integer NOT NULL DEFAULT 0;
48ALTER TABLE allocations ADD COLUMN master_id integer NOT NULL DEFAULT 0;
[779]49ALTER TABLE allocations ADD COLUMN backup_id integer NOT NULL DEFAULT 0;
[658]50ALTER TABLE allocations DROP CONSTRAINT allocations_pkey;
51ALTER TABLE allocations ADD COLUMN id serial PRIMARY KEY;
[779]52-- not certain this is right
[762]53CREATE UNIQUE INDEX allocations_skey ON allocations (cidr,vrf,type);
[658]54
55ALTER TABLE freeblocks ADD COLUMN vrf text NOT NULL DEFAULT '';
56ALTER TABLE freeblocks ADD COLUMN parent_id integer NOT NULL DEFAULT 0;
57ALTER TABLE freeblocks ADD COLUMN master_id integer NOT NULL DEFAULT 0;
[762]58ALTER TABLE freeblocks ADD COLUMN reserve_for integer NOT NULL DEFAULT 0;
[658]59ALTER TABLE freeblocks DROP CONSTRAINT freeblocks_pkey;
60ALTER TABLE freeblocks ADD CONSTRAINT freeblocks_pkey PRIMARY KEY ("cidr","parent_id");
61ALTER TABLE freeblocks ADD COLUMN id serial;
62
63ALTER TABLE poolips ADD COLUMN vrf text NOT NULL DEFAULT '';
[691]64ALTER TABLE poolips ADD COLUMN vlan text NOT NULL DEFAULT '';
[658]65ALTER TABLE poolips ADD COLUMN rdns text NOT NULL DEFAULT '';
66ALTER TABLE poolips ADD COLUMN parent_id integer NOT NULL DEFAULT 0;
67ALTER TABLE poolips ADD COLUMN master_id integer NOT NULL DEFAULT 0;
[779]68ALTER TABLE poolips ADD COLUMN backup_id integer NOT NULL DEFAULT 0;
[658]69ALTER TABLE poolips DROP CONSTRAINT poolips_pkey;
70ALTER TABLE poolips ADD COLUMN id serial;
71ALTER TABLE poolips ADD CONSTRAINT poolips_pkey PRIMARY KEY ("ip", "parent_id");
72
73-- probably need some more indexes
74
[670]75-- Need some additional fields to support search output. Might arguably
76-- move pool IPs into the allocations table; we'll see.
77DROP VIEW searchme;
[792]78-- do these here, because we can't do them while the view is defined
79ALTER TABLE allocations ALTER COLUMN description TYPE varchar(128);
80ALTER TABLE poolips ALTER COLUMN description TYPE varchar(128);
[670]81CREATE VIEW "searchme" AS
82 SELECT allocations.cidr, allocations.custid, allocations."type", allocations.city,
[691]83 allocations.description, allocations.notes, allocations.circuitid, allocations.vrf,
84 allocations.vlan, allocations.id, allocations.parent_id, 'n' AS available
[670]85 FROM allocations
86 UNION
87 SELECT poolips.ip, poolips.custid, poolips.type, poolips.city,
[691]88 poolips.description, poolips.notes, poolips.circuitid, poolips.vrf,
89 poolips.vlan, poolips.id, poolips.parent_id, poolips.available
[670]90 FROM poolips;
91
[658]92-- Relabel a few types to match the new structure
93UPDATE alloctypes SET listname='Routing aggregation', dispname='Routing aggregation' WHERE type='rm';
94
95-- Not critical but the previous definitions were too restrictive (eg, can't
96-- handle MD5, or SHA password hashes). Plans for ACLs also require larger fields.
97ALTER TABLE users ALTER COLUMN username TYPE varchar(256);
98ALTER TABLE users ALTER COLUMN password TYPE varchar(256);
99ALTER TABLE users ALTER COLUMN acl TYPE varchar(256);
Note: See TracBrowser for help on using the repository browser.