Skip to main content

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.

  1. Install and setup the Flask extension.
  2. Place SQL migrations under the subdirectory database/migrations/.
  3. 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 an SQL file (that is, with an .sql filename extension.)

The recommended filename format is YYMMDD_NNN_migration_name.sql, for example, 20240219_001_add_table_accounts.sql.

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flask-migratepg-1.0.2.tar.gz (4.2 kB view hashes)

Uploaded Source

Built Distribution

flask_migratepg-1.0.2-py3-none-any.whl (4.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page