@dzangolab/fastify-slonik v0.75.0
@dzangolab/fastify-slonik
A Fastify plugin that provides an easy integration of slonik in a fastify API.
The plugin is a thin wrapper around the fastify-slonik
plugin.
The plugin also includes logic to run migrations via @dzangolab/postgres-migrations
which is forked from postgres-migrations
.
Requirements
Installation
Install with npm:
npm install @dzangolab/fastify-config @dzangolab/fastify-slonik slonik
Install with pnpm:
pnpm add --filter "@scope/project" @dzangolab/fastify-config @dzangolab/fastify-slonik slonik
Usage
Add a slonik
block to your config:
import { parse } from "@dzangolab/fastify-config";
import dotenv from "dotenv";
import type { ApiConfig } from "@dzangolab/fastify-config";
dotenv.config();
const config: ApiConfig = {
...
slonik: {
db: {
databaseName: process.env.DB_NAME as string,
host: process.env.DB_HOST as string,
password: process.env.DB_PASSWORD as string,
port: parse(process.env.DB_PORT, 5432) as number,
username: process.env.DB_USER as string,
},
migrations: {
development: parse(
process.env.MIGRATIONS_DEVELOPMENT_FOLDER,
"migrations"
) as string,
production: parse(
process.env.MIGRATIONS_PRODUCTION_FOLDER,
"apps/api/build/migrations"
) as string,
},
},
...
};
export default config;
Register the plugin with your Fastify instance:
import configPlugin from "@dzangolab/fastify-config";
import slonikPlugin, { migrationPlugin } from "@dzangolab/fastify-slonik";
import Fastify from "fastify";
import config from "./config";
import type { ApiConfig } from "@dzangolab/fastify-config";
import type { FastifyInstance } from "fastify";
const start = async () => {
// Create fastify instance
const fastify = Fastify({
logger: config.logger,
});
// Register fastify-config plugin
await fastify.register(configPlugin, { config });
// Register fastify-slonik plugin
await fastify.register(slonikPlugin, config.slonik);
// Run database migrations
await fastify.register(migrationPlugin, config.slonik);
await fastify.listen({
port: config.port,
host: "0.0.0.0",
});
};
start();
Note: migrationPlugin
should be registered after all the plugins.
Configuration
db
Attribute | Type | Description |
---|---|---|
database | string | The name of the database to connect to. |
host | string | The database's host. |
password | string | The password for connecting to the database. |
port | number | The database's port. |
username | string | The username for connecting to the database. |
migrations
Paths to the migrations files. You can specify 1 path per environment. Currently the only environments supported are: development
andproduction
.
The path must be relative to node.js process.cwd()
.
9 months ago
9 months ago
10 months ago
12 months ago
1 year ago
1 year ago
1 year ago
11 months ago
11 months ago
11 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
10 months ago
10 months ago
1 year ago
10 months ago
10 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago