| 
									
										
										
										
											2024-11-02 01:09:48 +08:00
										 |  |  | //go:build !no_default_driver
 | 
					
						
							| 
									
										
										
										
											2022-07-07 05:19:05 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | package core | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"github.com/pocketbase/dbx" | 
					
						
							|  |  |  | 	_ "modernc.org/sqlite" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-30 04:46:56 +08:00
										 |  |  | func DefaultDBConnect(dbPath string) (*dbx.DB, error) { | 
					
						
							| 
									
										
										
										
											2023-05-27 14:04:01 +08:00
										 |  |  | 	// Note: the busy_timeout pragma must be first because
 | 
					
						
							|  |  |  | 	// the connection needs to be set to block on busy before WAL mode
 | 
					
						
							|  |  |  | 	// is set in case it hasn't been already set by another connection.
 | 
					
						
							| 
									
										
										
										
											2023-07-24 15:35:42 +08:00
										 |  |  | 	pragmas := "?_pragma=busy_timeout(10000)&_pragma=journal_mode(WAL)&_pragma=journal_size_limit(200000000)&_pragma=synchronous(NORMAL)&_pragma=foreign_keys(ON)&_pragma=temp_store(MEMORY)&_pragma=cache_size(-16000)" | 
					
						
							| 
									
										
										
										
											2022-11-02 02:29:07 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-27 14:04:01 +08:00
										 |  |  | 	db, err := dbx.Open("sqlite", dbPath+pragmas) | 
					
						
							|  |  |  | 	if err != nil { | 
					
						
							| 
									
										
										
										
											2022-12-15 22:42:35 +08:00
										 |  |  | 		return nil, err | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2022-11-02 02:29:07 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	return db, nil | 
					
						
							| 
									
										
										
										
											2022-07-07 05:19:05 +08:00
										 |  |  | } |