Peewee-AIO integration for Muffin framework
Project description
muffin-peewee-aio – Peewee ORM integration to Muffin framework.
Requirements
python >= 3.9
Installation
Muffin Peewee should be installed using pip:
$ pip install muffin-peewee-aio
You can install optional database drivers with:
$ pip install muffin-peewee-aio[aiosqlite] $ pip install muffin-peewee-aio[aiopg] $ pip install muffin-peewee-aio[asyncpg] $ pip install muffin-peewee-aio[aiomysql]
Usage
from muffin import Application
from muffin_peewee import Plugin as Peewee
# Create Muffin Application
app = Application('example')
# Initialize the plugin
# As alternative: db = Peewee(app, **options)
db = Peewee()
db.setup(app, PEEWEE_CONNECTION='postgresql://postgres:postgres@localhost:5432/database')
Options
Name |
Default value |
Desctiption |
CONNECTION |
sqlite:///db.sqlite |
Database URL |
CONNECTION_PARAMS |
{} |
Additional params for DB connection |
AUTO_CONNECTION |
True |
Automatically get a connection from db for a request |
AUTO_TRANSACTION |
True |
Automatically wrap a request into a transaction |
MIGRATIONS_ENABLED |
True |
Enable migrations with |
MIGRATIONS_PATH |
"migrations" |
Set path to the migrations folder |
PYTEST_SETUP_DB |
True |
Manage DB schema and connection in pytest |
You are able to provide the options when you are initiliazing the plugin:
db.setup(app, connection='DB_URL')
Or setup it inside Muffin.Application config using the PEEWEE_ prefix:
PEEWEE_CONNECTION = 'DB_URL'
Muffin.Application configuration options are case insensitive
Queries
class Test(db.Model):
data = peewee.CharField()
@app.route('/')
async def view(request):
return [t.data async for t in Test.select()]
Manage connections
# Set configuration option `MANAGE_CONNECTIONS` to False
# Use context manager
@app.route('/')
async def view(request):
# Aquire a connection
async with db.manager.connection():
# Work with db
# ...
Migrations
Create migrations:
$ muffin example:app peewee-create [NAME] [--auto]
Run migrations:
$ muffin example:app peewee-migrate [NAME] [--fake]
Rollback migrations:
$ muffin example:app peewee-rollback [NAME]
List migrations:
$ muffin example:app peewee-list
Clear migrations from DB:
$ muffin example:app peewee-clear
Merge migrations:
$ muffin example:app peewee-merge
Bug tracker
If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/muffin-peewee-aio/issues
Contributing
Development of Muffin Peewee happens at: https://github.com/klen/muffin-peewee-aio
Contributors
klen (Kirill Klenov)
License
Licensed under a MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for muffin_peewee_aio-0.18.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a308071b7526dbad27f60a0ee9284cd09bae6187cb15e663cf523d4307abc8b3 |
|
MD5 | c6fa2be237efb6af6fa50e48d27cf8a1 |
|
BLAKE2b-256 | e477a561ced247a3679838891ccd4282456c9426f9737485a2fefffbc8e15e87 |