Remix
Remix
remix/data-table/migrations · FunctionView Source

createMigration

Summary

Creates a migration descriptor with normalized defaults.

Signature

function createMigration(input: CreateMigrationInput): Migration;

Example

import { createMigration, column as c } from "remix/data-table/migrations";
import { table } from "remix/data-table";

let users = table({
  name: "users",
  columns: {
    id: c.integer().primaryKey().autoIncrement(),
    email: c.varchar(255).notNull().unique(),
  },
});

export default createMigration({
  async up({ db, schema }) {
    await schema.createTable(users);

    if (db.adapter.dialect === "sqlite") {
      await db.exec("pragma foreign_keys = on");
    }
  },
  async down({ schema }) {
    await schema.dropTable("users", { ifExists: true });
  },
});

Parameters

input

Migration handlers and transaction mode.

Returns

A normalized migration object.