diff --git a/eavdb/eavdb.ss b/eavdb/eavdb.ss index 31c459978e6edd27dcd440120d0d57426ace3eb1..d61e74aa373d685bcb29233ba1650decf22956e5 100644 --- a/eavdb/eavdb.ss +++ b/eavdb/eavdb.ss @@ -44,6 +44,7 @@ (db-exec db (string-append "create table " table "_value_real ( id integer primary key autoincrement, entity_id integer, attribute_id varchar(255), value real, dirty integer, version integer)")) (db-exec db (string-append "create table " table "_value_file ( id integer primary key autoincrement, entity_id integer, attribute_id varchar(255), value varchar(4096), dirty integer, version integer)"))) + (define (validate db) ;; check attribute for duplicate entity-id/attribute-ids 0) diff --git a/web/scripts/server-sync.ss b/web/scripts/server-sync.ss index a48bd3dd48bec84e9dcfccc0d74db7a429a46579..335e1a5b8708d1cf065f4b3d56d5bca6f27eb4e0 100644 --- a/web/scripts/server-sync.ss +++ b/web/scripts/server-sync.ss @@ -187,7 +187,7 @@ (build db (- n 1)))) (define (test) - (let ((db (db-open "unit.db"))) + (let ((db (db-open "unit.db" setup))) (build db 99999999) )) diff --git a/web/scripts/sql.ss b/web/scripts/sql.ss index cda513953c56933f89af8fbd21db60e52379a2e4..e3c39bdfbe16b2ab90fb3d3e1a7d186e52a8c6f5 100644 --- a/web/scripts/sql.ss +++ b/web/scripts/sql.ss @@ -31,6 +31,20 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(define (db-open db-name setup-fn) + (cond + ((file-exists? (string->path db-name)) + (display "open existing db")(newline) + (open (string->path db-name))) + (else + (display "making new db")(newline) + (let ((db (open (string->path db-name)))) + ;; todo, dynamically create these tables + (setup-fn db "sync") + (setup-fn db "stream") + db)))) + + ;; helper to return first instance from a select (define (select-first db str . args) (let ((s (apply db-select (append (list db str) args)))) diff --git a/web/server.scm b/web/server.scm index 9a32b0a7cf0dee6d67d154cb5c0de2683fbb8f50..45edb715cc30c6bbd92185a22a5f68282a1a5e29 100755 --- a/web/server.scm +++ b/web/server.scm @@ -35,26 +35,13 @@ ; "scripts/input.ss" ) -(define (db-open db-name) - (cond - ((file-exists? (string->path db-name)) - (display "open existing db")(newline) - (open (string->path db-name))) - (else - (display "making new db")(newline) - (let ((db (open (string->path db-name)))) - ;; todo, dynamically create these tables - (setup db "sync") - (setup db "stream") - db)))) - ; a utility to change the process owner, ; assuming mzscheme is called by root. ;;(unsafe!) ;;(define setuid (get-ffi-obj 'setuid #f (_fun _int -> _int))) (define db-name "client/htdocs/symbai.db") -(define db (db-open db-name)) +(define db (db-open db-name setup)) (open-log "log.txt") ;(write-db db "sync" "/home/dave/code/mongoose-web/web/input.csv") diff --git a/web/test.scm b/web/test.scm index cbf676a8bffa3711bf61d72eca50943002ae3e18..106200a0092acab353bd769ff616303f351943fe 100755 --- a/web/test.scm +++ b/web/test.scm @@ -21,32 +21,18 @@ "scripts/txt.ss" "scripts/server-sync.ss") -(define (db-open db-name) - (cond - ((file-exists? (string->path db-name)) - (display "open existing db")(newline) - (open (string->path db-name))) - (else - (display "making new db")(newline) - (let ((db (open (string->path db-name)))) - ;; todo, dynamically create these tables - (setup db "sync") - (setup db "stream") - db)))) -(define db-name "unit-test.db") -(with-handlers - ((exn:fail? (lambda (e) (msg e)))) - (delete-file db-name)) -(define db (db-open db-name)) (open-log "unit-test-log.txt") (define (unit-tests) ;; db -(msg "testing db") -(define db "unit-test.db") -(set! db (db-open db)) + (msg "testing db") + (define db "unit-test.db") + (with-handlers + ((exn:fail? (lambda (e) (msg e)))) + (delete-file db)) + (set! db (db-open db setup)) ;;(msg (db-status db))