sql upgrade cleanup
authorMarko Kreen <markokr@gmail.com>
Tue, 29 Nov 2011 14:23:46 +0000 (16:23 +0200)
committerMarko Kreen <markokr@gmail.com>
Tue, 29 Nov 2011 14:23:46 +0000 (16:23 +0200)
- use 'structure/upgrade.sql' to generate X.upgrade.sql
- add pgq_ext to upgraded schemas
- move non-standard upgrade scripts to extra/
- setup_skytools: build sql files in 'build' target, not always
- pgq_ext.version: bump ver to 3.0.0.1

15 files changed:
misc/bumpver.sh
scripts/skytools_upgrade.py
setup_skytools.py
sql/londiste/Makefile
sql/londiste/structure/upgrade.sql [new file with mode: 0644]
sql/pgq/Makefile
sql/pgq/structure/upgrade.sql [new file with mode: 0644]
sql/pgq_coop/Makefile
sql/pgq_coop/structure/upgrade.sql [new file with mode: 0644]
sql/pgq_ext/Makefile
sql/pgq_ext/functions/version.sql
sql/pgq_ext/structure/install.sql
sql/pgq_ext/structure/upgrade.sql [new file with mode: 0644]
sql/pgq_node/Makefile
sql/pgq_node/structure/upgrade.sql [new file with mode: 0644]

index 5bd901edd7ea6fbecaadae252965475b4d7a1679..ae9bf7dbf44f4c7952c2208dfc2a684528d06abf 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-for s in pgq pgq_node pgq_coop londiste; do
+for s in pgq pgq_node pgq_coop londiste pgq_ext; do
   sver=$(git log --raw -n 1 sql/$s/functions | head -1)
   fn="sql/$s/functions/$s.version.sql"
   fver=$(git log --raw -n 1 "$fn" | head -1)
index 37aa779c41c18aba8e42a7acb8393292f00e0cba..169a19131f76ddf1cd0f0d49732c100fb16dd52e 100755 (executable)
@@ -16,7 +16,7 @@ from skytools.natsort import natsort_key
 
 
 # schemas, where .upgrade.sql is enough
-AUTO_UPGRADE = ('pgq', 'pgq_node', 'pgq_coop', 'londiste')
+AUTO_UPGRADE = ('pgq', 'pgq_node', 'pgq_coop', 'londiste', 'pgq_ext')
 
 # fetch list of databases
 DB_LIST = "select datname from pg_database "\
@@ -28,6 +28,7 @@ version_list = [
     # schema, ver, filename, recheck_func
     ['pgq', '3.0', None, None],
     ['londiste', '3.0', None, None],
+    ['pgq_ext', '2.1', None, None],
 ]
 
 
index 14ce9a6ed2b83647edc5858cf7acbcb0d77dbffd..e5dd97e52a6c87a805f750ea15bcc29583994539 100755 (executable)
@@ -60,13 +60,17 @@ sql_files = [
    'sql/pgq_node/pgq_node.upgrade.sql',
    'sql/londiste/londiste.upgrade.sql',
    'sql/pgq_coop/pgq_coop.upgrade.sql',
+   'sql/pgq_ext/pgq_ext.upgrade.sql',
+]
 
+# sql files for special occasions
+extra_sql_files = [
    'upgrade/final/v3.0_pgq_core.sql',
-   #'sql/txid/txid.sql',
 ]
 
 if not INSTALL_SQL:
     sql_files = []
+    extra_sql_files = []
 
 def getvar(name, default):
     try:
@@ -92,15 +96,21 @@ DEF_SKYLOG = getvar('SKYLOG', '0') != '0'
 DEF_SK3_SUBDIR = getvar('SK3_SUBDIR', '0') != '0'
 
 # create sql files if they dont exist
-for fn in sql_files:
-    if not os.path.isfile(fn):
-        f = open(fn, 'w')
-        wd = os.path.dirname(fn)
-        cmd = [sys.executable, '../../scripts/catsql.py', 'structure/install.sql']
-        p = Popen(cmd, stdout=f, cwd = wd)
-        p.communicate()
-        if p.returncode != 0:
-            raise Exception('catsql failed')
+def make_sql():
+    for fn in sql_files:
+        if not os.path.isfile(fn):
+            f = open(fn, 'w')
+            wd = os.path.dirname(fn)
+            if fn.endswith('upgrade.sql'):
+                base = 'structure/upgrade.sql'
+            else:
+                base = 'structure/install.sql'
+            print("Creating %s" % (fn,))
+            cmd = [sys.executable, '../../scripts/catsql.py', base]
+            p = Popen(cmd, stdout=f, cwd = wd)
+            p.communicate()
+            if p.returncode != 0:
+                raise Exception('catsql failed')
 
 # remove .py, add suffix
 def fixscript(fn, dstdir, sfx):
@@ -121,9 +131,14 @@ class sk3_build(build):
         build.initialize_options(self)
         self.build_base = 'build.sk3'
 
+    def run(self):
+        build.run(self)
+        make_sql()
+
 # fix script names in build dir
 class sk3_build_scripts(build_scripts):
     def run(self):
+
         build_scripts.run(self)
 
         for sfn in sfx_scripts:
@@ -142,7 +157,6 @@ class sk3_install(install):
     skylog = DEF_SKYLOG
 
     def run(self):
-
         # create installer_config.py with final paths
         fn = 'python/skytools/installer_config.py'
         cf = open(fn + '.in', 'r').read()
@@ -182,7 +196,8 @@ setup(
         'python/conf/wal-master.ini',
         'python/conf/wal-slave.ini',
         ]),
-      ('share/skytools3', sql_files)],
+      ('share/skytools3', sql_files),
+      ('share/skytools3/extra', extra_sql_files)],
     ext_modules = c_modules,
     scripts = sfx_scripts + nosfx_scripts,
     cmdclass = {
index 3fcae21a91cc5e301ee433a49599d02c2afa59ea..c81efb34eebac75115beda422019705d25ead405 100644 (file)
@@ -25,7 +25,7 @@ londiste.sql: $(SRCS)
        $(CATSQL) $(SQLS) > $@
 
 londiste.upgrade.sql: $(SRCS)
-       $(CATSQL) structure/functions.sql > $@
+       $(CATSQL) structure/upgrade.sql > $@
 
 test: londiste.sql
        $(MAKE) installcheck || { filterdiff --format=unified regression.diffs | less; exit 1; }
diff --git a/sql/londiste/structure/upgrade.sql b/sql/londiste/structure/upgrade.sql
new file mode 100644 (file)
index 0000000..80b6549
--- /dev/null
@@ -0,0 +1 @@
+\i structure/functions.sql
index 19759831cb4a6a04f2d3166eda900b801460477e..cfee2a7729dd95f30026b69bf084e6a0318e1aac 100644 (file)
@@ -44,7 +44,7 @@ pgq.sql: $(SRCS)
 
 # fixme: use LDRS here, to upgrade triggers
 pgq.upgrade.sql: $(SRCS)
-       $(CATSQL) structure/func_internal.sql structure/func_public.sql > $@
+       $(CATSQL) structure/upgrade.sql > $@
 
 #
 # docs
diff --git a/sql/pgq/structure/upgrade.sql b/sql/pgq/structure/upgrade.sql
new file mode 100644 (file)
index 0000000..1b898d1
--- /dev/null
@@ -0,0 +1,2 @@
+\i structure/func_internal.sql
+\i structure/func_public.sql
index 0affc96b3c8b20e2ffbf7c489cb4c7af82be5c5f..31c5d32927f75f246d616d4bcfc507fa0b32ff58 100644 (file)
@@ -2,7 +2,6 @@
 DATA_built = pgq_coop.sql pgq_coop.upgrade.sql
 
 SQL_FULL = structure/schema.sql structure/functions.sql structure/grants.sql
-SQL_UPGRADE = structure/functions.sql
 
 FUNCS = $(shell sed -n -e '/^\\/{s/\\i //;p}' structure/functions.sql)
 SRCS = $(SQL_FULL) $(FUNCS)
@@ -26,7 +25,7 @@ pgq_coop.sql: $(SRCS)
        $(CATSQL) structure/install.sql > $@
 
 pgq_coop.upgrade.sql: $(SRCS)
-       $(CATSQL) $(SQL_UPGRADE) > $@
+       $(CATSQL) structure/upgrade.sql > $@
 
 #
 # docs
diff --git a/sql/pgq_coop/structure/upgrade.sql b/sql/pgq_coop/structure/upgrade.sql
new file mode 100644 (file)
index 0000000..80b6549
--- /dev/null
@@ -0,0 +1 @@
+\i structure/functions.sql
index b76db0501e20140fdab70b9445bce9e089d1f411..3ab3cd4c16a681d27b52fdcbeba3c1112a746bea 100644 (file)
@@ -1,6 +1,6 @@
 
 DOCS = README.pgq_ext
-DATA_built = pgq_ext.sql
+DATA_built = pgq_ext.sql pgq_ext.upgrade.sql
 
 SRCS = structure/tables.sql functions/track_batch.sql functions/track_event.sql \
        functions/track_tick.sql functions/version.sql
@@ -17,6 +17,9 @@ include $(PGXS)
 pgq_ext.sql: $(SRCS)
        $(CATSQL) structure/install.sql > $@
 
+pgq_ext.upgrade.sql: $(SRCS)
+       $(CATSQL) structure/upgrade.sql > $@
+
 test: pgq_ext.sql
        make installcheck || { less regression.diffs ; exit 1; }
 
index 5e6be8ac87c1d34e0a3990885ad789970d1ad2ad..de9081f5d07031f099830ecf6670cb5ded468bcd 100644 (file)
@@ -2,7 +2,7 @@
 create or replace function pgq_ext.version()
 returns text as $$
 begin
-    return '2.1.6';
+    return '3.0.0.1';
 end;
 $$ language plpgsql;
 
index 30c8774197e2d57ba98165d40d6cc8dfcbf48992..973e35b80d3d29534dc48b9fca9e0e5a6668c2af 100644 (file)
@@ -1,6 +1,3 @@
 \i structure/tables.sql
-\i functions/track_batch.sql
-\i functions/track_event.sql
-\i functions/track_tick.sql
-\i functions/version.sql
+\i structure/upgrade.sql
 
diff --git a/sql/pgq_ext/structure/upgrade.sql b/sql/pgq_ext/structure/upgrade.sql
new file mode 100644 (file)
index 0000000..baafbce
--- /dev/null
@@ -0,0 +1,5 @@
+\i functions/track_batch.sql
+\i functions/track_event.sql
+\i functions/track_tick.sql
+\i functions/version.sql
+
index 1d88ce6a96362983129ea3a07065b56f36ef0bdd..2d24fcb32863fad49650cfdc531016907158f3cf 100644 (file)
@@ -24,7 +24,7 @@ pgq_node.sql: $(SRCS)
        $(CATSQL) structure/install.sql > $@
 
 pgq_node.upgrade.sql: $(SRCS)
-       $(CATSQL) structure/functions.sql > $@
+       $(CATSQL) structure/upgrade.sql > $@
 
 #
 # docs
diff --git a/sql/pgq_node/structure/upgrade.sql b/sql/pgq_node/structure/upgrade.sql
new file mode 100644 (file)
index 0000000..80b6549
--- /dev/null
@@ -0,0 +1 @@
+\i structure/functions.sql