mirror of
				https://github.com/carrotquest/django-clickhouse.git
				synced 2025-10-30 23:47:46 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			38 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Databases
 | |
| Direct usage of `Database` objects is not expected in this library. But in some cases, you may still need them.
 | |
| This section describes `Database` objects and there usage.
 | |
| 
 | |
| `django_clickhouse.database.Database` is a class, describing a ClickHouse database connection.
 | |
| 
 | |
| ## Getting database objects
 | |
| To get a `Database` object by its alias name in [CLICKHOUSE_DATABASES](configuration.md#clickhouse_databases) 
 | |
|  use `django_clickhouse.database.connections` object. 
 | |
| This object is a `django_clickhouse.database.ConnectionProxy` instance:
 | |
|  it creates `Database` objects when they are used for the first time and stores them in memory.
 | |
|  
 | |
| Example:
 | |
| ```python
 | |
| from django_clickhouse.database import connections
 | |
| 
 | |
| # Database objects are inited on first call
 | |
| db = connections['default']
 | |
| secondary = connections['secondary']
 | |
| 
 | |
| # Already inited - object is returned from memory 
 | |
| db_link = connections['default']
 | |
| ```
 | |
| 
 | |
| You can also get database objects from [QuerySet](queries.md) and [ClickHouseModel](models.md) instances by calling `get_database(for_write: bool = False)` method.
 | |
| This database may differ, depending on [routing](routing.md#router) you use.
 | |
| 
 | |
| ## Database object
 | |
| Database class is based on [infi.clickhouse_orm Database object](https://github.com/Infinidat/infi.clickhouse_orm/blob/develop/docs/models_and_databases.md#models-and-databases),
 | |
| but extends it with some extra attributes and methods:
 | |
| 
 | |
| ### Database migrations are restricted
 | |
| I expect this library [migration system](migrations.md) to be used.
 | |
| Direct database migration will lead to migration information errors.
 | |
| 
 | |
| ### `insert_tuples` and `select_tuples` methods
 | |
| Methods to work with [ClickHouseModel namedtuples](models.md#clickhousemodel-namedtuple-form).
 |