| 
									
										
										
										
											2024-12-20 14:12:29 +08:00
										 |  |  | from flask_sqlalchemy import SQLAlchemy | 
					
						
							|  |  |  | from sqlalchemy import MetaData | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | POSTGRES_INDEXES_NAMING_CONVENTION = { | 
					
						
							|  |  |  |     "ix": "%(column_0_label)s_idx", | 
					
						
							|  |  |  |     "uq": "%(table_name)s_%(column_0_name)s_key", | 
					
						
							|  |  |  |     "ck": "%(table_name)s_%(constraint_name)s_check", | 
					
						
							|  |  |  |     "fk": "%(table_name)s_%(column_0_name)s_fkey", | 
					
						
							|  |  |  |     "pk": "%(table_name)s_pkey", | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | metadata = MetaData(naming_convention=POSTGRES_INDEXES_NAMING_CONVENTION) | 
					
						
							| 
									
										
										
										
											2025-04-30 17:28:02 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | # ****** IMPORTANT NOTICE ****** | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # NOTE(QuantumGhost): Avoid directly importing and using `db` in modules outside of the | 
					
						
							|  |  |  | # `controllers` package. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Instead, import `db` within the `controllers` package and pass it as an argument to | 
					
						
							|  |  |  | # functions or class constructors. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Directly importing `db` in other modules can make the code more difficult to read, test, and maintain. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Whenever possible, avoid this pattern in new code. | 
					
						
							| 
									
										
										
										
											2024-12-20 14:12:29 +08:00
										 |  |  | db = SQLAlchemy(metadata=metadata) |