Finish schema version 1.
This commit is contained in:
		
							parent
							
								
									4b1fd6568f
								
							
						
					
					
						commit
						0213a8011f
					
				
					 1 changed files with 41 additions and 3 deletions
				
			
		|  | @ -180,9 +180,9 @@ BEGIN | ||||||
|     -- -------------------------------- |     -- -------------------------------- | ||||||
|     -- Transaction splits |     -- Transaction splits | ||||||
| 
 | 
 | ||||||
|     CREATE SEQUENCE public.transaction_splits_id_seq |     CREATE SEQUENCE IF NOT EXISTS public.transaction_splits_id_seq | ||||||
|       START WITH 1 INCREMENT BY 1; |       START WITH 1 INCREMENT BY 1; | ||||||
|     CREATE TABLE public.transaction_splits ( |     CREATE TABLE IF NOT EXISTS public.transaction_splits ( | ||||||
| 	id INTEGER PRIMARY KEY NOT NULL DEFAULT NEXTVAL('public.transaction_splits_id_seq'::regclass), | 	id INTEGER PRIMARY KEY NOT NULL DEFAULT NEXTVAL('public.transaction_splits_id_seq'::regclass), | ||||||
| 
 | 
 | ||||||
| 	transaction INTEGER NOT NULL, | 	transaction INTEGER NOT NULL, | ||||||
|  | @ -268,8 +268,46 @@ BEGIN | ||||||
|        GROUP BY t.id, a.name |        GROUP BY t.id, a.name | ||||||
|        ORDER BY t.id DESC; |        ORDER BY t.id DESC; | ||||||
| 
 | 
 | ||||||
|  |     -- -------------------------------- | ||||||
|  |     -- Function to check schema version (used in migrations) | ||||||
|  | 
 | ||||||
|  |     CREATE OR REPLACE FUNCTION brmbar_privileged.has_exact_schema_version( | ||||||
|  | 	    IN i_ver INTEGER | ||||||
|  |     ) RETURNS INTEGER | ||||||
|  |     VOLATILE  NOT LEAKPROOF  LANGUAGE plpgsql AS $x$ | ||||||
|  |     DECLARE | ||||||
|  | 	    v_ver INTEGER; | ||||||
|  |     BEGIN | ||||||
|  | 	    SELECT ver INTO v_ver FROM brmbar_privileged.brmbar_schema; | ||||||
|  | 	    IF v_ver is NULL THEN | ||||||
|  | 	      RETURN false; | ||||||
|  | 	    ELSE | ||||||
|  | 	      RETURN v_ver = i_ver; | ||||||
|  | 	    END IF; | ||||||
|  |     END; | ||||||
|  |     $x$; | ||||||
|  | 
 | ||||||
|  |     -- -------------------------------- | ||||||
|  |     --  | ||||||
|  | 
 | ||||||
|  |     CREATE OR REPLACE FUNCTION brmbar_privileged.upgrade_schema_version_to( | ||||||
|  | 	    IN i_ver INTEGER | ||||||
|  |     ) RETURNS INTEGER | ||||||
|  |     VOLATILE  NOT LEAKPROOF  LANGUAGE plpgsql AS $x$ | ||||||
|  |     DECLARE | ||||||
|  | 	    v_ver INTEGER; | ||||||
|  |     BEGIN | ||||||
|  |       SELECT ver FROM brmbar_privileged.brmbar_schema INTO v_ver; | ||||||
|  |       IF v_ver=(i_ver-1) THEN | ||||||
|  |         UPDATE brmbar_privileged.brmbar_schema SET ver = i_ver; | ||||||
|  |       ELSE | ||||||
|  |         RAISE EXCEPTION 'Invalid brmbar schema version transition (% -> %)', v_ver, i_ver; | ||||||
|  |       END IF; | ||||||
|  |     END; | ||||||
|  |     $x$; | ||||||
|  | 
 | ||||||
|     -- Initialize version 1 |     -- Initialize version 1 | ||||||
|     -- INSERT INTO brmbar_privileged.brmbar_schema(ver) VALUES(1); |     INSERT INTO brmbar_privileged.brmbar_schema(ver) VALUES(1); | ||||||
|   END IF; |   END IF; | ||||||
| END; | END; | ||||||
| $$; | $$; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue