Skip to content

Extensions

monolayer-pg manages extensions through the extensions property in your database definition.

You add an extension to your database by using the extension function.

ts
import { defineDatabase, extension } from "@monolayer/pg/schema";
import { dbSchema } from "./schema";

export default defineDatabase({
  schemas: [dbSchema],
  extensions: [extension("moddatetime")], 
});

When monolayer-pg generates migrations, extensions will be added, kept, or removed according to what's defined in the extensions property and what the database currently has installed:

ExtensionWhen
addedextension is in your definition but not in the database
keptextension is in your definition and in the database
removedextension is the database but not in your definition

WARNING

If you want to add extensions that are not part of the default PostgreSQL installation, make sure they are installed in the PostgreSQL server before applying migrations.

WARNING

Some extensions need a user with superuser privileges to load them into the database. You should check the extension documentation accordingly.