· 7 years ago · Feb 22, 2019, 06:22 AM
1/tmp/scripts$ cat create_db.sql
2CREATE TABLE dbVersion (
3 versionNum VARCHAR(10) NOT NULL,
4 applied TIMESTAMP
5 PRIMARY KEY (versionNum)
6);
7
8/tmp/scripts$ cat upgrade_db.sql
9CREATE OR REPLACE FUNCTION UpgradeDB (dbName VARCHAR)
10RETURN void AS $$
11DECLARE
12BEGIN
13 IF EXISTS (SELECT datname from pg_database WHERE datname = dbName) THEN
14 --Do upgrade code
15 ELSE
16 --Install Fresh
17 i /tmp/scripts/create_db.sql;
18 END IF;
19END;
20$$ language plpgsql;
21
22SELECT UpgradeDB('foo');
23
24CREATE FUNCTION callSQLScript(scriptPath text)
25RETURNS void AS $$
26 #!/bin/sh
27 plsql -f scriptPath
28$$ LANGUAGE plsh;
29
30SELECT callSQLScript('/tmp/scripts/create_db.sql');
31
32CREATE TABLE sql_jobs (
33 job_id serial not null unique, -- machine key
34 job_name text primary key,
35 sql_to_execute text not null
36);