Socket
Socket
Sign inDemoInstall

drizzle-kit

Package Overview
Dependencies
34
Maintainers
4
Versions
498
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    drizzle-kit

DrizzleKit - is a CLI migrator tool for DrizzleORM. It is probably one and only tool that lets you completely automatically generate SQL migrations and covers ~95% of the common cases like deletions and renames by prompting user input. <https://github.com


Version published
Maintainers
4
Install size
27.6 MB
Created

Package description

What is drizzle-kit?

Drizzle-kit is an npm package designed to simplify database migrations and schema management for JavaScript and TypeScript applications. It provides a set of tools to create, manage, and apply database migrations in a structured and efficient manner.

What are drizzle-kit's main functionalities?

Create Migrations

This feature allows you to create new database migrations. The code sample demonstrates how to create a migration that adds a 'users' table with columns for 'id', 'name', 'email', and timestamps.

const { createMigration } = require('drizzle-kit');

createMigration('add-users-table', (migration) => {
  migration.createTable('users', (table) => {
    table.increments('id').primary();
    table.string('name');
    table.string('email').unique();
    table.timestamps();
  });
});

Apply Migrations

This feature allows you to apply all pending migrations to your database. The code sample shows how to apply migrations using the `applyMigrations` function.

const { applyMigrations } = require('drizzle-kit');

applyMigrations();

Rollback Migrations

This feature allows you to rollback the last applied migration. The code sample demonstrates how to rollback the most recent migration using the `rollbackMigration` function.

const { rollbackMigration } = require('drizzle-kit');

rollbackMigration();

List Migrations

This feature allows you to list all migrations, both applied and pending. The code sample shows how to list migrations using the `listMigrations` function.

const { listMigrations } = require('drizzle-kit');

listMigrations();

Other packages similar to drizzle-kit

Readme

Source

Drizzle Kit

DrizzleKit - is a CLI migrator tool for DrizzleORM. It is probably one and only tool that lets you completely automatically generate SQL migrations and covers ~95% of the common cases like deletions and renames by prompting user input. https://github.com/drizzle-team/drizzle-kit-mirror - is a mirror repository for issues.

Documentation

Check the full documenation on the website

How it works

drizzle-kit will traverse schema folder or schema file, generate schema snapshot and compare it to the previous version, if there's one. Based on the difference it will generate all needed SQL migrations and if there are any automatically unresolvable cases like renames it will prompt user for input.

For schema file:

// ./src/db/schema.ts

import { integer, pgTable, serial, text, varchar } from "drizzle-orm/pg-core";

const users = pgTable("users", {
    id: serial("id").primaryKey(),
    fullName: varchar("full_name", { length: 256 }),
  }, (table) => ({
    nameIdx: index("name_idx", table.fullName),
  })
);

export const authOtp = pgTable("auth_otp", {
  id: serial("id").primaryKey(),
  phone: varchar("phone", { length: 256 }),
  userId: integer("user_id").references(() => users.id),
});

It will generate:

CREATE TABLE IF NOT EXISTS auth_otp (
 "id" SERIAL PRIMARY KEY,
 "phone" character varying(256),
 "user_id" INT
);

CREATE TABLE IF NOT EXISTS users (
 "id" SERIAL PRIMARY KEY,
 "full_name" character varying(256)
);

DO $$ BEGIN
 ALTER TABLE auth_otp ADD CONSTRAINT auth_otp_user_id_fkey FOREIGN KEY ("user_id") REFERENCES users(id);
EXCEPTION
 WHEN duplicate_object THEN null;
END $$;

CREATE INDEX IF NOT EXISTS users_full_name_index ON users (full_name);

Installation & configuration

npm install -D drizzle-kit

Running with CLI options

// package.json
{
 "scripts": {
  "generate": "drizzle-kit generate:pg --out migrations-folder --schema src/db/schema.ts"
 }
}
npm run generate

FAQs

Last updated on 10 Jun 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc