-
Notifications
You must be signed in to change notification settings - Fork 90
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
8 changed files
with
141 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
CockroachEngine | ||
============== | ||
|
||
Configuration | ||
------------- | ||
|
||
.. code-block:: python | ||
# piccolo_conf.py | ||
from piccolo.engine.cockroach import CockroachEngine | ||
DB = CockroachEngine(config={ | ||
'host': 'localhost', | ||
'database': 'piccolo', | ||
'user': 'root', | ||
'password': '', | ||
'port': '26257', | ||
}) | ||
config | ||
~~~~~~ | ||
|
||
The config dictionary is passed directly to the underlying database adapter, | ||
asyncpg. See the `asyncpg docs <https://magicstack.github.io/asyncpg/current/api/index.html#connection>`_ | ||
to learn more. | ||
|
||
------------------------------------------------------------------------------- | ||
|
||
Connection pool | ||
--------------- | ||
|
||
To use a connection pool, you need to first initialise it. The best place to do | ||
this is in the startup event handler of whichever web framework you are using. | ||
|
||
Here's an example using Starlette. Notice that we also close the connection | ||
pool in the shutdown event handler. | ||
|
||
.. code-block:: python | ||
from piccolo.engine import engine_finder | ||
from starlette.applications import Starlette | ||
app = Starlette() | ||
@app.on_event('startup') | ||
async def open_database_connection_pool(): | ||
engine = engine_finder() | ||
await engine.start_connection_pool() | ||
@app.on_event('shutdown') | ||
async def close_database_connection_pool(): | ||
engine = engine_finder() | ||
await engine.close_connection_pool() | ||
.. hint:: Using a connection pool helps with performance, since connections | ||
are reused instead of being created for each query. | ||
|
||
Once a connection pool has been started, the engine will use it for making | ||
queries. | ||
|
||
.. hint:: If you're running several instances of an app on the same server, | ||
you may prefer an external connection pooler - like pgbouncer. | ||
|
||
Configuration | ||
~~~~~~~~~~~~~ | ||
|
||
The connection pool uses the same configuration as your engine. You can also | ||
pass in additional parameters, which are passed to the underlying database | ||
adapter. Here's an example: | ||
|
||
.. code-block:: python | ||
# To increase the number of connections available: | ||
await engine.start_connection_pool(max_size=20) | ||
------------------------------------------------------------------------------- | ||
|
||
Source | ||
------ | ||
|
||
.. currentmodule:: piccolo.engine.cockroach | ||
|
||
.. autoclass:: CockroachEngine |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -126,3 +126,4 @@ Engine types | |
|
||
./sqlite_engine | ||
./postgres_engine | ||
./cockroach_engine |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
.. _setting_up_cockroach: | ||
|
||
############## | ||
Setup Cockroach | ||
############## | ||
|
||
Installation | ||
************ | ||
|
||
Follow the `instructions for your OS <https://www.cockroachlabs.com/docs/stable/install-cockroachdb.html>`_. | ||
|
||
------------------------------------------------------------------------------- | ||
|
||
Creating a database | ||
******************* | ||
|
||
cockroach sql | ||
------------- | ||
|
||
CockroachDB comes with its own management tooling. | ||
|
||
.. code-block:: bash | ||
cd ~/wherever/you/installed/cockroachdb | ||
cockroach sql --insecure | ||
Enter the following: | ||
|
||
.. code-block:: bash | ||
create database piccolo; | ||
use piccolo; | ||
Management GUI | ||
-------------- | ||
|
||
CockroachDB comes with its own web-based management GUI available on localhost: http://127.0.0.1:8080/ | ||
|
||
Beekeeper Studio | ||
---------------- | ||
|
||
If you prefer a GUI, Beekeeper Studio is recommended and has an `installer available <https://www.beekeeperstudio.io/>`_. |