https://github.com/uselessscat/fastapi-migrations
A small integration between Fastapi and Alembic.
https://github.com/uselessscat/fastapi-migrations
alembic fastapi migration python python3 sqlalchemy vscode
Last synced: about 2 months ago
JSON representation
A small integration between Fastapi and Alembic.
- Host: GitHub
- URL: https://github.com/uselessscat/fastapi-migrations
- Owner: uselessscat
- License: mit
- Created: 2020-08-22T20:10:05.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2023-01-19T17:47:21.000Z (over 2 years ago)
- Last Synced: 2025-08-04T04:27:43.043Z (2 months ago)
- Topics: alembic, fastapi, migration, python, python3, sqlalchemy, vscode
- Language: Python
- Homepage:
- Size: 67.4 KB
- Stars: 25
- Watchers: 6
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Fastapi Migrations





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 worksWait 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.pyThis 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 routerapp: 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 clicli()
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, Migrationsapp: 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](LICENSE).