mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 15:04:00 +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