mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 11:41:32 +01:00 
			
		
		
		
	Testing: Update postgres sequences (#9304)
This commit is contained in:
		
							parent
							
								
									2d8a89563d
								
							
						
					
					
						commit
						d3a9c4ceec
					
				| @ -35,5 +35,37 @@ func LoadFixtures() error { | |||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		fmt.Printf("LoadFixtures failed after retries: %v\n", err) | 		fmt.Printf("LoadFixtures failed after retries: %v\n", err) | ||||||
| 	} | 	} | ||||||
|  | 	// Now if we're running postgres we need to tell it to update the sequences | ||||||
|  | 	if x.Dialect().DriverName() == "postgres" { | ||||||
|  | 		results, err := x.QueryString(`SELECT 'SELECT SETVAL(' || | ||||||
|  | 		quote_literal(quote_ident(PGT.schemaname) || '.' || quote_ident(S.relname)) || | ||||||
|  | 		', COALESCE(MAX(' ||quote_ident(C.attname)|| '), 1) ) FROM ' || | ||||||
|  | 		quote_ident(PGT.schemaname)|| '.'||quote_ident(T.relname)|| ';' | ||||||
|  | 	 FROM pg_class AS S, | ||||||
|  | 	      pg_depend AS D, | ||||||
|  | 	      pg_class AS T, | ||||||
|  | 	      pg_attribute AS C, | ||||||
|  | 	      pg_tables AS PGT | ||||||
|  | 	 WHERE S.relkind = 'S' | ||||||
|  | 	     AND S.oid = D.objid | ||||||
|  | 	     AND D.refobjid = T.oid | ||||||
|  | 	     AND D.refobjid = C.attrelid | ||||||
|  | 	     AND D.refobjsubid = C.attnum | ||||||
|  | 	     AND T.relname = PGT.tablename | ||||||
|  | 	 ORDER BY S.relname;`) | ||||||
|  | 		if err != nil { | ||||||
|  | 			fmt.Printf("Failed to generate sequence update: %v\n", err) | ||||||
|  | 			return err | ||||||
|  | 		} | ||||||
|  | 		for _, r := range results { | ||||||
|  | 			for _, value := range r { | ||||||
|  | 				_, err = x.Exec(value) | ||||||
|  | 				if err != nil { | ||||||
|  | 					fmt.Printf("Failed to update sequence: %s Error: %v\n", value, err) | ||||||
|  | 					return err | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
| 	return err | 	return err | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user