Simple migration command for Flask and Psycopg 3.
Project description
PostgreSQL Database Migrations for Flask with Psycopg
Synopsis
flask-migratepg
is a simple migrations tool for Flask and Psycopg 3.
- Install and setup the Flask extension.
- Place SQL migrations under the subdirectory
database/migrations/
. - Execute migrations with the command
flask migrate execute
.
Installation
$ pip install flask-migratepg
Setup in application:
from flask import Flask
from flask_migratepg import MigratePg
import os
app = Flask(__name__)
app.config.from_mapping(
MIGRATIONS_PATH=os.path.abspath('database/migrations'),
PSYCOPG_CONNINFO="dbname=example host=localhost user=example password=secret"
)
MigratePg(app)
Usage
Create a new migration SQL file:
$ flask migrate --help
$ flask migrate new --help
$ flask migrate new migration_name
Then to run migrations:
$ flask migrate execute --help
$ flask migrate execute
This will run migrations in alphabetical order and track them in a migrations table.
If there is a failure, the transaction will be rolled back.
Migration Files
Migrations are placed under database/migrations/
as either an SQL or Python file
(that is, with an .sql
or .py
filename extension respectively.)
The recommended filename format is YYMMDD_NNN_migration_name.sql
, for example, 20240219_001_add_table_accounts.sql
.
SQL (.sql
) Migrations
An SQL migration file will be executed. Statements are separated as per standard SQL conventions with a semicolon.
These are just plain-text standard SQL files. Comments (lines beginning with --
) will be ignored.
Python (.py
) Migrations
A Python file will be executed.
An optional method migrate(conn)
is available. If this method is
present, it will be called with a database connection handle as the parameter; otherwise,
the Python script will be executed normally.
An example of the method:
def migrate(conn):
cur = conn.cursor()
# ...
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 flask_migratepg-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dbbed150b8d42a97a325b694cf1195fa98a78f7c62f74716bd635f986602e7aa |
|
MD5 | 3cf6021bda0d5228445cbd4879c7fc8f |
|
BLAKE2b-256 | 6f6b0ccd02fe230d89ddc17ae394d7dc4326c1b5396876819946f66b181c4ebc |