createMigration

View Source

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 })
  },
})

Params

input

Migration handlers and transaction mode.

Returns

A normalized migration object.