Create extensions directory.
authorDaniel Hokka Zakrisson <dhokka@cs.princeton.edu>
Sat, 16 Oct 2010 22:10:25 +0000 (18:10 -0400)
committerDaniel Hokka Zakrisson <dhokka@cs.princeton.edu>
Sat, 16 Oct 2010 22:10:25 +0000 (18:10 -0400)
extensions/README.txt [new file with mode: 0644]
plc.d/db
setup.py

diff --git a/extensions/README.txt b/extensions/README.txt
new file mode 100644 (file)
index 0000000..b75a55e
--- /dev/null
@@ -0,0 +1,12 @@
+Create a database extension by creating a tree like follows:
+
+- /usr/share/plc_api/extensions/<name>-up*
+Contains the SQL or script that sets up the extension's database needs.
+
+- /usr/share/plc_api/extensions/<name>-down*
+Contains the SQL or script that removes the extension from the database.
+
+- /usr/share/plc_api/extensions/<name>/migrations/[0-9][0-9][0-9]-{up,down}-*
+Migration scripts for the extension. One of the scripts for each version
+has to execute
+UPDATE plc_db_extensions SET version = <version> WHERE name = '<name>'
index b2f7c3d..644a3ad 100755 (executable)
--- a/plc.d/db
+++ b/plc.d/db
@@ -24,10 +24,10 @@ export PGPORT=$PLC_DB_PORT
 function extend_db()
 {
     shopt -s nullglob
-    for file in /usr/share/plc_api/extensions/*-up; do
-       script=${file#*/}
-       name=${script%-up}
-       extension=${script##*}
+    for file in /usr/share/plc_api/extensions/*-up*; do
+       script=${file##*/}
+       name=${script%-up*}
+       extension=${script##*.}
        version=$(psql -U $PLC_DB_USER --quiet --tuples-only --no-align -c \
                  "SELECT version FROM plc_db_extensions WHERE name='$name' LIMIT 1" \
                  $PLC_DB_NAME 2>/dev/null | awk '/^[0-9]+$/ { ver=$1 } END { print ver }')
@@ -46,7 +46,7 @@ function extend_db()
            check
        fi
        for file in /usr/share/plc_api/extensions/$name/migrations/[0-9]*-up-*; do
-           script=${file#*/}
+           script=${file##*/}
            index=${script%-up-*}
            extension=${script##*.}
            if [ $index -gt $version ] ; then
index b74fb01..f0846cf 100755 (executable)
--- a/setup.py
+++ b/setup.py
@@ -22,4 +22,5 @@ setup(py_modules = ['ModPython'],
          ['migrations/README.txt',
           'migrations/extract-views.py'] 
          + glob('migrations/[0-9][0-9][0-9]*')),
+        ('extensions', ['extensions/README.txt']),
         ])