Skip to main content

Destructive operations

They are the operations that drop tables, columns, indexes, constraints, and so on.

Usually you will use these functions in the down function of a migration, but you can use them in the up function too. If you want to have the reverse operation of a destructive operation, you can use the reversible options.

Example:

p.DropTable("users", schema.DropTableOptions{
Reversible: &TableOption{
schema.TableName: "users",
PostgresTableDefinition: Innerschema.Tablefunc(t *PostgresTableDef) {
t.Serial("id")
t.String("name")
}),
}})

In that case, if you are in a change function in your migration, the library will at the up operation drop the table users and at the down operation re-create the table users with the columns id and name.