Skip to main content

Fastapi Migrations

PyPI PyPI - Python Version PyPI - License

GitHub last commit GitHub commit activity GitHub issues GitHub pull requests

This library provides a small wrapper for alembic.

Notice

Under inital development. This can not be ready-for-production library.

This can means:

  • Breaking changes may be introduced
  • Poor documentation and changeslogs
  • Not totally tested
  • Be forced to navigate through the source code to find out how it works

Wait to a version > 0.1.0 for usage in production environments.

Installation

You can install this library with:

pip3 install fastapi-migrations

Usage

You can use both programatically and by CLI (command line interface).

Imagine your project folders

app/
    cli/
        __init__.py
        action.py
    db/
        __init__.py
        base.py
    models/
        __init__.py
        my_model.py
    endpoints/
        __init__.py
        my_endpoint.py
    __init__.py
    config.py
    main.py

This is an example of main.py:

from fastapi import FastAPI
from fastapi_sqlalchemy import DBSessionMiddleware

# Load configs and endpoints
from app.config import settings
from app.endpoints import router

app: FastAPI = FastAPI(title=settings.project_name)

# register routes
app.include_router(router)

# add middlewares
app.add_middleware(DBSessionMiddleware, db_url=settings.database_uri)

if __name__ == '__main__':
    # Load cli commands
    from app.cli import app as cli

    cli()

Then your app/cli/__init__.py can be like:

import typer

from fastapi_migrations.cli import MigrationsCli
import app.cli.action as action

# main cli app
app: typer.Typer = typer.Typer()

# these are our cli actions
app.add_typer(action.app, name='action', help='Common actions the app do')

# this line adds the fastapi-migrations cli commands to our app
app.add_typer(MigrationsCli())

Now you can call your app from the command line and use fastapi-migrations like:

py app/main.py db show

If you want to use this library programatically, this is an example:

The file app/cli/action.py can be like:

import typer
from fastapi_migrations import MigrationsConfig, Migrations

app: typer.Typer = typer.Typer()

@app.command()
def show() -> None:
    config = MigrationsConfig()

    migrations = Migrations(config)

    migrations.show()

You can add this lines where you wish in your proyect. Here we ar adding it to a command line so we can call our app like:

py app/main.py action show

License

This software is distributed under MIT license.

Metadata

Release files for fastapi-migrations 0.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fastapi-migrations 0.0.5
File Size Uploaded
fastapi-migrations-0.0.5.tar.gz 9.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fastapi-migrations 0.0.5
File Interpreter ABI Platform
fastapi_migrations-0.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 18.3 kB

Release files / fastapi-migrations-0.0.5.tar.gz

Download URL fastapi-migrations-0.0.5.tar.gz
Size 9.6 kB
Tags Source
SHA-256 checksum
How to use checksums
f62b35fb7e12fcb60a50b6826330f327a7ccad3b6cadbb2de6278312071470aa
BLAKE2b-256 checksum
How to use checksums
5e997109e1cff35b2dde426fe4857e3f7ce90b4da30640bb6323d4e42379e796
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.1.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.1

Release files / fastapi_migrations-0.0.5-py3-none-any.whl

Download URL fastapi_migrations-0.0.5-py3-none-any.whl
Size 8.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a3c35cf43b5d827d1edda8c261b105764114e66eab533390a1d4e6ca08cb85f7
BLAKE2b-256 checksum
How to use checksums
e6c02cc5a485910eb982589fad7b59122008dbef4ce319afd01780fd0842c7ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.1.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.1

Release history Release notifications | RSS feed

This release

0.0.5 This release

2 release files

0.0.4

2 release files

0.0.3

3 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page