sqlc will ignore rollback statements when parsing migration SQL files. The following tools are current supported:
-- +goose Up
CREATE TABLE post (
id int NOT NULL,
title text,
body text,
PRIMARY KEY(id)
);
-- +goose Down
DROP TABLE post;package db
type Post struct {
ID int
Title sql.NullString
Body sql.NullString
}-- +migrate Up
-- SQL in section 'Up' is executed when this migration is applied
CREATE TABLE people (id int);
-- +migrate Down
-- SQL section 'Down' is executed when this migration is rolled back
DROP TABLE people;package db
type People struct {
ID int32
}CREATE TABLE comment (id int NOT NULL, text text NOT NULL);
---- create above / drop below ----
DROP TABLE comment;package db
type Comment struct {
ID int32
Text string
}In 20060102.up.sql:
CREATE TABLE post (
id int NOT NULL,
title text,
body text,
PRIMARY KEY(id)
);In 20060102.down.sql:
DROP TABLE post;package db
type Post struct {
ID int
Title sql.NullString
Body sql.NullString
}-- migrate:up
CREATE TABLE foo (bar INT NOT NULL);
-- migrate:down
DROP TABLE foo;package db
type Foo struct {
Bar int32
}