Full Code of gobuffalo/fizz for AI

main 43801550a873 cached
223 files
498.3 KB
176.3k tokens
945 symbols
1 requests
Download .txt
Showing preview only (554K chars total). Download the full file or copy to clipboard to get everything.
Repository: gobuffalo/fizz
Branch: main
Commit: 43801550a873
Files: 223
Total size: 498.3 KB

Directory structure:
gitextract_9i9t9223/

├── .github/
│   ├── CODEOWNERS
│   ├── FUNDING.yml
│   └── workflows/
│       ├── standard-stale.yml
│       └── tests.yml
├── .gitignore
├── LICENSE
├── Makefile
├── README.md
├── SHOULDERS.md
├── bubbler.go
├── bubbler_test.go
├── columns.go
├── columns_test.go
├── database.yml
├── docker-compose.yml
├── fizz.go
├── foreign_keys.go
├── go.mod
├── go.sum
├── index.go
├── raw_sql.go
├── tables.go
├── tables_private_test.go
├── tables_test.go
├── test.sh
├── testdata/
│   ├── e2e/
│   │   ├── cockroach_test.go
│   │   ├── fixtures/
│   │   │   ├── cockroach/
│   │   │   │   ├── down/
│   │   │   │   │   ├── 0.sql
│   │   │   │   │   ├── 1.sql
│   │   │   │   │   ├── 10.sql
│   │   │   │   │   ├── 11.sql
│   │   │   │   │   ├── 12.sql
│   │   │   │   │   ├── 13.sql
│   │   │   │   │   ├── 14.sql
│   │   │   │   │   ├── 15.sql
│   │   │   │   │   ├── 2.sql
│   │   │   │   │   ├── 3.sql
│   │   │   │   │   ├── 4.sql
│   │   │   │   │   ├── 5.sql
│   │   │   │   │   ├── 6.sql
│   │   │   │   │   ├── 7.sql
│   │   │   │   │   ├── 8.sql
│   │   │   │   │   └── 9.sql
│   │   │   │   └── up/
│   │   │   │       ├── 0.sql
│   │   │   │       ├── 1.sql
│   │   │   │       ├── 10.sql
│   │   │   │       ├── 11.sql
│   │   │   │       ├── 12.sql
│   │   │   │       ├── 13.sql
│   │   │   │       ├── 14.sql
│   │   │   │       ├── 15.sql
│   │   │   │       ├── 2.sql
│   │   │   │       ├── 3.sql
│   │   │   │       ├── 4.sql
│   │   │   │       ├── 5.sql
│   │   │   │       ├── 6.sql
│   │   │   │       ├── 7.sql
│   │   │   │       ├── 8.sql
│   │   │   │       └── 9.sql
│   │   │   ├── mysql/
│   │   │   │   ├── down/
│   │   │   │   │   ├── 0.sql
│   │   │   │   │   ├── 1.sql
│   │   │   │   │   ├── 10.sql
│   │   │   │   │   ├── 11.sql
│   │   │   │   │   ├── 12.sql
│   │   │   │   │   ├── 13.sql
│   │   │   │   │   ├── 14.sql
│   │   │   │   │   ├── 15.sql
│   │   │   │   │   ├── 2.sql
│   │   │   │   │   ├── 3.sql
│   │   │   │   │   ├── 4.sql
│   │   │   │   │   ├── 5.sql
│   │   │   │   │   ├── 6.sql
│   │   │   │   │   ├── 7.sql
│   │   │   │   │   ├── 8.sql
│   │   │   │   │   └── 9.sql
│   │   │   │   └── up/
│   │   │   │       ├── 0.sql
│   │   │   │       ├── 1.sql
│   │   │   │       ├── 10.sql
│   │   │   │       ├── 11.sql
│   │   │   │       ├── 12.sql
│   │   │   │       ├── 13.sql
│   │   │   │       ├── 14.sql
│   │   │   │       ├── 15.sql
│   │   │   │       ├── 2.sql
│   │   │   │       ├── 3.sql
│   │   │   │       ├── 4.sql
│   │   │   │       ├── 5.sql
│   │   │   │       ├── 6.sql
│   │   │   │       ├── 7.sql
│   │   │   │       ├── 8.sql
│   │   │   │       └── 9.sql
│   │   │   ├── postgres/
│   │   │   │   ├── down/
│   │   │   │   │   ├── 0.sql
│   │   │   │   │   ├── 1.sql
│   │   │   │   │   ├── 10.sql
│   │   │   │   │   ├── 11.sql
│   │   │   │   │   ├── 12.sql
│   │   │   │   │   ├── 13.sql
│   │   │   │   │   ├── 14.sql
│   │   │   │   │   ├── 15.sql
│   │   │   │   │   ├── 2.sql
│   │   │   │   │   ├── 3.sql
│   │   │   │   │   ├── 4.sql
│   │   │   │   │   ├── 5.sql
│   │   │   │   │   ├── 6.sql
│   │   │   │   │   ├── 7.sql
│   │   │   │   │   ├── 8.sql
│   │   │   │   │   └── 9.sql
│   │   │   │   └── up/
│   │   │   │       ├── 0.sql
│   │   │   │       ├── 1.sql
│   │   │   │       ├── 10.sql
│   │   │   │       ├── 11.sql
│   │   │   │       ├── 12.sql
│   │   │   │       ├── 13.sql
│   │   │   │       ├── 14.sql
│   │   │   │       ├── 15.sql
│   │   │   │       ├── 2.sql
│   │   │   │       ├── 3.sql
│   │   │   │       ├── 4.sql
│   │   │   │       ├── 5.sql
│   │   │   │       ├── 6.sql
│   │   │   │       ├── 7.sql
│   │   │   │       ├── 8.sql
│   │   │   │       └── 9.sql
│   │   │   └── sqlite3/
│   │   │       ├── down/
│   │   │       │   ├── 0.sql
│   │   │       │   ├── 1.sql
│   │   │       │   ├── 10.sql
│   │   │       │   ├── 11.sql
│   │   │       │   ├── 12.sql
│   │   │       │   ├── 13.sql
│   │   │       │   ├── 14.sql
│   │   │       │   ├── 15.sql
│   │   │       │   ├── 2.sql
│   │   │       │   ├── 3.sql
│   │   │       │   ├── 4.sql
│   │   │       │   ├── 5.sql
│   │   │       │   ├── 6.sql
│   │   │       │   ├── 7.sql
│   │   │       │   ├── 8.sql
│   │   │       │   └── 9.sql
│   │   │       └── up/
│   │   │           ├── 0.sql
│   │   │           ├── 1.sql
│   │   │           ├── 10.sql
│   │   │           ├── 11.sql
│   │   │           ├── 12.sql
│   │   │           ├── 13.sql
│   │   │           ├── 14.sql
│   │   │           ├── 15.sql
│   │   │           ├── 2.sql
│   │   │           ├── 3.sql
│   │   │           ├── 4.sql
│   │   │           ├── 5.sql
│   │   │           ├── 6.sql
│   │   │           ├── 7.sql
│   │   │           ├── 8.sql
│   │   │           └── 9.sql
│   │   ├── go.mod
│   │   ├── go.sum
│   │   ├── integration_test.go
│   │   ├── migrations/
│   │   │   ├── 20191100000001_users.down.fizz
│   │   │   ├── 20191100000001_users.up.fizz
│   │   │   ├── 20191100000002_user_notes.down.fizz
│   │   │   ├── 20191100000002_user_notes.up.fizz
│   │   │   ├── 20191100000003_user_notes_drop_title.down.fizz
│   │   │   ├── 20191100000003_user_notes_drop_title.up.fizz
│   │   │   ├── 20191100000004_user_notes_add_slug.down.fizz
│   │   │   ├── 20191100000004_user_notes_add_slug.up.fizz
│   │   │   ├── 20191100000005_user_notes_add_slug.down.fizz
│   │   │   ├── 20191100000005_user_notes_add_slug.up.fizz
│   │   │   ├── 20191100000006_user_notes_add_slug.down.fizz
│   │   │   ├── 20191100000006_user_notes_add_slug.up.fizz
│   │   │   ├── 20191100000007_user_notes_rename.down.fizz
│   │   │   ├── 20191100000007_user_notes_rename.up.fizz
│   │   │   ├── 20191100000008_user_notes_rename_notes.down.fizz
│   │   │   ├── 20191100000008_user_notes_rename_notes.up.fizz
│   │   │   ├── 20191100000009_users_username.down.fizz
│   │   │   ├── 20191100000009_users_username.up.fizz
│   │   │   ├── 20191100000010_users_drop_name.down.fizz
│   │   │   ├── 20191100000010_users_drop_name.up.fizz
│   │   │   ├── 20191100000011_user_posts_change_column.down.fizz
│   │   │   ├── 20191100000011_user_posts_change_column.up.fizz
│   │   │   ├── 20191100000012_rename_user.down.fizz
│   │   │   ├── 20191100000012_rename_user.up.fizz
│   │   │   ├── 20191100000013_rename_user_notes_user.down.fizz
│   │   │   ├── 20191100000013_rename_user_notes_user.up.fizz
│   │   │   ├── 20191100000014_rename_user_add_published.down.fizz
│   │   │   ├── 20191100000014_rename_user_add_published.up.fizz
│   │   │   ├── 20191100000015_auto_fk.down.fizz
│   │   │   ├── 20191100000015_auto_fk.up.fizz
│   │   │   ├── 20191100000016_rename_auto_fk.down.fizz
│   │   │   └── 20191100000016_rename_auto_fk.up.fizz
│   │   ├── migrator_test.go
│   │   ├── mysql_test.go
│   │   ├── postgres_test.go
│   │   └── sqlite3_test.go
│   └── migrations/
│       ├── .gitignore
│       ├── 20160808213308_setup_tests.down.fizz
│       ├── 20160808213308_setup_tests.up.fizz
│       ├── 20160808213310_setup_tests2.down.fizz
│       ├── 20160808213310_setup_tests2.up.fizz
│       └── multiple/
│           ├── 20180413210602_create_users.mysql.up.sql
│           ├── 20180413210602_create_users.postgres.up.sql
│           ├── 20180413210602_create_users.sqlite3.up.sql
│           └── 20180413210602_create_users.up.sql
├── translator.go
├── translators/
│   ├── cockroach.go
│   ├── cockroach_meta.go
│   ├── cockroach_test.go
│   ├── mariadb.go
│   ├── mariadb_test.go
│   ├── mssqlserver.go
│   ├── mssqlserver_test.go
│   ├── mysql.go
│   ├── mysql_meta.go
│   ├── mysql_test.go
│   ├── postgres.go
│   ├── postgres_test.go
│   ├── schema.go
│   ├── schema_test.go
│   ├── sqlite.go
│   ├── sqlite_meta.go
│   ├── sqlite_meta_test.go
│   ├── sqlite_test.go
│   └── translators_test.go
└── version.go

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/CODEOWNERS
================================================
translators/cockroach* @mclark4386
# Default owner
*                      @gobuffalo/core-managers @gobuffalo/database

================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

github: [markbates, stanislas-m]
patreon: buffalo

================================================
FILE: .github/workflows/standard-stale.yml
================================================
name: Standard Autocloser

on:
  schedule:
    - cron: "30 1 * * *"

jobs:
  call-standard-autocloser:
    name: Autocloser
    uses: gobuffalo/.github/.github/workflows/stale.yml@v1
    secrets: inherit


================================================
FILE: .github/workflows/tests.yml
================================================
name: Tests
on:
  push:
    branches:
      - main
  pull_request:

jobs:
  mysql-tests:
    name: MySQL tests - Go v${{ matrix.go-version }}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        go-version:
          - "1.17.x"
          - "1.18.x"

    services:
      mysql:
        image: mysql:5.7
        env:
          MYSQL_ROOT_PASSWORD: root
          MYSQL_DATABASE: pop_test
          MYSQL_PORT: 3307
        ports:
          - 3307:3306
        # needed because the mysql container does not provide a healthcheck
        options: --health-cmd "mysqladmin ping -h localhost" --health-interval 5s --health-timeout 5s --health-retries 10

    steps:
      - uses: actions/checkout@v3
      - name: Setup Go ${{ matrix.go }}
        uses: actions/setup-go@v3
        with:
          go-version: ${{ matrix.go-version }}

      - name: Install and run soda
        env:
          SODA_DIALECT: "mysql"
          MYSQL_PORT: 3307
        run: |
          go install -tags sqlite github.com/gobuffalo/pop/v6/soda@latest
          soda drop -e $SODA_DIALECT -p ./testdata/migrations
          soda create -e $SODA_DIALECT -p ./testdata/migrations
          soda migrate -e $SODA_DIALECT -p ./testdata/migrations

      - name: Test
        env:
          SODA_DIALECT: "mysql"
          MYSQL_PORT: 3307
        run: |
          go test -v -tags sqlite -race ./...

      - name: Reset database and run e2e
        env:
          SODA_DIALECT: "mysql"
        run: |
          soda drop -e $SODA_DIALECT -p ./testdata/migrations
          soda create -e $SODA_DIALECT -p ./testdata/migrations
          cd testdata/e2e
          go test -v -tags sqlite,e2e -race ./...

  pg-tests:
    name: PostgreSQL tests - Go v${{ matrix.go-version }}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        go-version:
          - "1.17.x"
          - "1.18.x"

    services:
      postgres:
        image: postgres:10
        env:
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
          POSTGRES_DB: postgres
        ports:
          - 5433:5432
        # needed because the postgres container does not provide a healthcheck
        options: --health-cmd pg_isready --health-interval 5s --health-timeout 5s --health-retries 10

    steps:
      - uses: actions/checkout@v3
      - name: Setup Go ${{ matrix.go }}
        uses: actions/setup-go@v3
        with:
          go-version: ${{ matrix.go-version }}

      - name: Install and run soda
        env:
          SODA_DIALECT: "postgres"
          POSTGRESQL_URL: "postgres://postgres:postgres@${{job.services.postgres.host}}:${{ job.services.postgres.ports[5432] }}/pop_test?sslmode=disable"
        run: |
          go install -tags sqlite github.com/gobuffalo/pop/v6/soda@latest
          soda drop -e $SODA_DIALECT -p ./testdata/migrations
          soda create -e $SODA_DIALECT -p ./testdata/migrations
          soda migrate -e $SODA_DIALECT -p ./testdata/migrations

      - name: Test
        env:
          SODA_DIALECT: "postgres"
          POSTGRESQL_URL: "postgres://postgres:postgres@${{job.services.postgres.host}}:${{ job.services.postgres.ports[5432] }}/pop_test?sslmode=disable"
        run: |
          go test -v -tags sqlite -race ./...

      - name: Reset database and run e2e
        env:
          SODA_DIALECT: "postgres"
        run: |
          soda drop -e $SODA_DIALECT -p ./testdata/migrations
          soda create -e $SODA_DIALECT -p ./testdata/migrations
          cd testdata/e2e
          go test -v -tags sqlite,e2e -race ./...

  crdb-tests:
    name: Cockroach tests - Go v${{ matrix.go-version }}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        go-version:
          - "1.17.x"
          - "1.18.x"

    steps:
      - uses: actions/checkout@v3
      - name: Setup Go ${{ matrix.go }}
        uses: actions/setup-go@v3
        with:
          go-version: ${{ matrix.go-version }}

      - name: Install Cockroach
        run: |
          mkdir -p crdb
          pushd crdb
          wget -qO- https://binaries.cockroachdb.com/cockroach-v21.1.19.linux-amd64.tgz | tar -xz
          mv cockroach-v21.1.19.linux-amd64/* .
          ln -s `pwd`/cockroach /usr/local/bin/
          cockroach version
          ./cockroach start-single-node --insecure --background
          popd

      - name: Install and run soda
        env:
          SODA_DIALECT: "cockroach"
          COCKROACH_PORT: 26257
        run: |
          go install -tags sqlite github.com/gobuffalo/pop/v6/soda@latest
          soda drop -e $SODA_DIALECT -p ./testdata/migrations
          soda create -e $SODA_DIALECT -p ./testdata/migrations
          soda migrate -e $SODA_DIALECT -p ./testdata/migrations

      - name: Test
        env:
          SODA_DIALECT: "cockroach"
          COCKROACH_PORT: 26257
        run: |
          go test -v -tags sqlite -race ./...

      - name: Reset database and run e2e
        env:
          SODA_DIALECT: "cockroach"
          COCKROACH_PORT: 26257
        run: |
          soda drop -e $SODA_DIALECT -p ./testdata/migrations
          soda create -e $SODA_DIALECT -p ./testdata/migrations
          cd testdata/e2e
          go test -v -tags sqlite,e2e -race ./...

  sqlite-tests:
    name: SQLite tests ${{ matrix.os }} - Go v${{ matrix.go-version }}
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        go-version:
          - "1.17.x"
          - "1.18.x"
        os:
          - "macos-latest"
          - "windows-latest"
          - "ubuntu-latest"

    steps:
      - name: Install sqlite3
        run: choco install sqlite
        if: matrix.os == 'windows-latest'

      - uses: actions/checkout@v3
      - name: Setup Go ${{ matrix.go }}
        uses: actions/setup-go@v3
        with:
          go-version: ${{ matrix.go-version }}

      - name: Install and run soda
        env:
          SODA_DIALECT: "sqlite"
        run: |
          go install -tags sqlite github.com/gobuffalo/pop/v6/soda@latest
          soda drop -e $SODA_DIALECT -p ./testdata/migrations
          soda create -e $SODA_DIALECT -p ./testdata/migrations
          soda migrate -e $SODA_DIALECT -p ./testdata/migrations
        shell: bash

      - name: Test
        if: ${{ matrix.os != 'windows-latest' }}
        env:
          SODA_DIALECT: "sqlite"
        run: |
          go test -v -tags sqlite -race ./...
        shell: bash

      - name: Test without race detection
        if: ${{ matrix.os == 'windows-latest' }}
        env:
          SODA_DIALECT: "sqlite"
        run: |
          go test -v -tags sqlite ./...
        shell: bash

      - name: Reset database and run e2e
        if: ${{ matrix.os != 'windows-latest' }}
        env:
          SODA_DIALECT: "sqlite"
        run: |
          soda drop -e $SODA_DIALECT -p ./testdata/migrations
          soda create -e $SODA_DIALECT -p ./testdata/migrations
          cd testdata/e2e
          go test -v -tags sqlite,e2e -race ./...
        shell: bash

      - name: Reset database and run e2e without race detection
        if: ${{ matrix.os == 'windows-latest' }}
        env:
          SODA_DIALECT: "sqlite"
        run: |
          soda drop -e $SODA_DIALECT -p ./testdata/migrations
          soda create -e $SODA_DIALECT -p ./testdata/migrations
          cd testdata/e2e
          go test -v -tags sqlite,e2e ./...
        shell: bash


================================================
FILE: .gitignore
================================================
*.log
.DS_Store
doc
tmp
pkg
*.gem
*.pid
coverage
coverage.data
build/*
*.pbxuser
*.mode1v3
.svn
profile
.console_history
.sass-cache/*
.rake_tasks~
*.log.lck
solr/
.jhw-cache/
jhw.*
*.sublime*
node_modules/
dist/
generated/
.vendor/
bin/*
gin-bin
.idea/
.vscode/
cockroach-data/
migrations/schema.sql
vendor/
sqldumps/
sql/


================================================
FILE: LICENSE
================================================
The MIT License (MIT)

Copyright (c) 2019 Mark Bates

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: Makefile
================================================
TAGS ?= sqlite
GO_BIN ?= go

install:
	$(GO_BIN) install -tags ${TAGS} -v .

tidy:
	$(GO_BIN) mod tidy

build:
	$(GO_BIN) build -v .

test:
	./test.sh -cover -v

lint:
	go get github.com/golangci/golangci-lint/cmd/golangci-lint
	golangci-lint run --enable-all

update:
	rm go.*
	$(GO_BIN) mod init github.com/gobuffalo/fizz
	$(GO_BIN) mod tidy --go=1.16


================================================
FILE: README.md
================================================
# Fizz

[![Actions Status](https://github.com/gobuffalo/fizz/workflows/Tests/badge.svg)](https://github.com/gobuffalo/fizz/actions)
[![Go Reference](https://pkg.go.dev/badge/github.com/gobuffalo/fizz.svg)](https://pkg.go.dev/github.com/gobuffalo/fizz)

A Common DSL for Migrating Databases


## Supported Database Engines

Fizz supports minimum supported version of all supported database engines.
Currently, the following database engines are officially supported. (Since
Fizz is used with the migration feature of Pop, supported databases and the
versions are correlated with Pop.)

* PostgreSQL 10
* MySQL 5.7 / MariaDB 10.3
* SQLite3 3.22
* CockroachDB v21.1
* MSSQL 2017 (not fully supported)


## Usage

### Create a Table

``` javascript
create_table("users") {
  t.Column("id", "integer", {primary: true})
  t.Column("email", "string", {})
  t.Column("twitter_handle", "string", {"size": 50})
  t.Column("age", "integer", {"default": 0})
  t.Column("admin", "bool", {"default": false})
  t.Column("company_id", "uuid", {"default_raw": "uuid_generate_v1()"})
  t.Column("bio", "text", {"null": true})
  t.Column("joined_at", "timestamp", {})
  t.Index("email", {"unique": true})
}

create_table("todos") {
  t.Column("user_id", "integer", {})
  t.Column("title", "string", {"size": 100})
  t.Column("details", "text", {"null": true})
  t.ForeignKey("user_id", {"users": ["id"]}, {"on_delete": "cascade"})
}
```

The `id` column don't have to be an integer. For instance, your can use an UUID type instead:

```javascript
create_table("users") {
  t.Column("id", "uuid", {primary: true})
  // ...
}
```

By default, fizz will generate two `timestamp` columns: `created_at` and `updated_at`.

The `t.Columns` method takes the following arguments: name of the column, the type of the field, and finally the last argument is any options you want to set on that column.

#### <a name="column-info"></a> "Common" Types:

* `string`
* `text`
* `timestamp`, `time`, `datetime`
* `integer`
* `bool`
* `uuid`

Any other type passed it will be be passed straight through to the underlying database.

For example for PostgreSQL you could pass `jsonb`and it will be supported, however, SQLite will yell very loudly at you if you do the same thing!

#### Supported Options:

* `size` - The size of the column. For example if you wanted a `varchar(50)` in Postgres you would do: `t.Column("column_name", "string", {"size": 50})`
* `null` - By default columns are not allowed to be `null`.
* `default` - The default value you want for this column. By default this is `null`.
* `default_raw` - The default value defined as a database function.
* `after` - (MySQL Only) Add a column after another column in the table. `example: {"after":"created_at"}`
* `first` - (MySQL Only) Add a column to the first position in the table. `example: {"first": true}`

#### Composite primary key 

```javascript
create_table("user_privileges") {
	t.Column("user_id", "int")
	t.Column("privilege_id", "int")
	t.PrimaryKey("user_id", "privilege_id")
}
```

Please note that the `t.PrimaryKey` statement MUST be after the columns definitions.

### Drop a Table

``` javascript
drop_table("table_name")
```

### Rename a Table

``` javascript
rename_table("old_table_name", "new_table_name")
```

### Add a Column

``` javascript
add_column("table_name", "column_name", "string", {})
```

See [above](#column-info) for more details on column types and options.

### Alter a column

``` javascript
change_column("table_name", "column_name", "string", {})
```

### Rename a Column

``` javascript
rename_column("table_name", "old_column_name", "new_column_name")
```

### Drop a Column

``` javascript
drop_column("table_name", "column_name")
```

### Add an Index

#### Supported Options:

* `name` - This defaults to `table_name_column_name_idx`
* `unique`

#### Simple Index:

``` javascript
add_index("table_name", "column_name", {})
```

#### Multi-Column Index:

``` javascript
add_index("table_name", ["column_1", "column_2"], {})
```

#### Unique Index:

``` javascript
add_index("table_name", "column_name", {"unique": true})
```

#### Index Names:

``` javascript
add_index("table_name", "column_name", {}) # name => table_name_column_name_idx
add_index("table_name", "column_name", {"name": "custom_index_name"})
```

### Rename an Index

``` javascript
rename_index("table_name", "old_index_name", "new_index_name")
```

### Drop an Index

``` javascript
drop_index("table_name", "index_name")
```

### Add a Foreign Key

```javascript
add_foreign_key("table_name", "field", {"ref_table_name": ["ref_column"]}, {
    "name": "optional_fk_name",
    "on_delete": "action",
    "on_update": "action",
})

```

#### Supported Options

* `name` - This defaults to `table_name_ref_table_name_ref_column_name_fk`
* `on_delete` - `CASCADE`, `SET NULL`, ...
* `on_update`

**Note:** `on_update` and `on_delete` are not supported on CockroachDB yet.

### Drop a Foreign Key

```javascript
drop_foreign_key("table_name", "fk_name", {"if_exists": true})
```

#### Supported Options

* `if_exists` - Adds `IF EXISTS` condition


### Raw SQL

``` javascript
sql("select * from users;")
```

### Execute an External Command

Sometimes during a migration you need to shell out to an external command.

```javascript
exec("echo hello")
```

## Development

### Testing

To run end-to-end tests, use

```
make test
```

If you made changes to the end-to-end tests and want to update the fixtures,
run the following command a couple of times until tests pass:

```
REFRESH_FIXTURES=true make test
```


================================================
FILE: SHOULDERS.md
================================================
# Fizz Stands on the Shoulders of Giants

Fizz does not try to reinvent the wheel! Instead, it uses the already great wheels developed by the Go community and puts them all together in the best way possible. Without these giants, this project would not be possible. Please make sure to check them out and thank them for all of their hard work.

Thank you to the following **GIANTS**:

* [github.com/Masterminds/semver/v3](https://godoc.org/github.com/Masterminds/semver/v3)
* [github.com/aymerick/douceur](https://godoc.org/github.com/aymerick/douceur)
* [github.com/davecgh/go-spew](https://godoc.org/github.com/davecgh/go-spew)
* [github.com/fatih/structs](https://godoc.org/github.com/fatih/structs)
* [github.com/go-sql-driver/mysql](https://godoc.org/github.com/go-sql-driver/mysql)
* [github.com/gobuffalo/flect](https://godoc.org/github.com/gobuffalo/flect)
* [github.com/gobuffalo/github_flavored_markdown](https://godoc.org/github.com/gobuffalo/github_flavored_markdown)
* [github.com/gobuffalo/helpers](https://godoc.org/github.com/gobuffalo/helpers)
* [github.com/gobuffalo/plush/v4](https://godoc.org/github.com/gobuffalo/plush/v4)
* [github.com/gobuffalo/tags/v3](https://godoc.org/github.com/gobuffalo/tags/v3)
* [github.com/gobuffalo/validate/v3](https://godoc.org/github.com/gobuffalo/validate/v3)
* [github.com/gofrs/uuid](https://godoc.org/github.com/gofrs/uuid)
* [github.com/gorilla/css](https://godoc.org/github.com/gorilla/css)
* [github.com/kballard/go-shellquote](https://godoc.org/github.com/kballard/go-shellquote)
* [github.com/kr/pretty](https://godoc.org/github.com/kr/pretty)
* [github.com/kr/pty](https://godoc.org/github.com/kr/pty)
* [github.com/kr/text](https://godoc.org/github.com/kr/text)
* [github.com/microcosm-cc/bluemonday](https://godoc.org/github.com/microcosm-cc/bluemonday)
* [github.com/pmezard/go-difflib](https://godoc.org/github.com/pmezard/go-difflib)
* [github.com/sergi/go-diff](https://godoc.org/github.com/sergi/go-diff)
* [github.com/sourcegraph/annotate](https://godoc.org/github.com/sourcegraph/annotate)
* [github.com/sourcegraph/syntaxhighlight](https://godoc.org/github.com/sourcegraph/syntaxhighlight)
* [github.com/stretchr/objx](https://godoc.org/github.com/stretchr/objx)
* [github.com/stretchr/testify](https://godoc.org/github.com/stretchr/testify)
* [golang.org/x/net](https://godoc.org/golang.org/x/net)
* [golang.org/x/sync](https://godoc.org/golang.org/x/sync)
* [golang.org/x/sys](https://godoc.org/golang.org/x/sys)
* [golang.org/x/term](https://godoc.org/golang.org/x/term)
* [golang.org/x/text](https://godoc.org/golang.org/x/text)
* [golang.org/x/tools](https://godoc.org/golang.org/x/tools)
* [gopkg.in/check.v1](https://godoc.org/gopkg.in/check.v1)
* [gopkg.in/yaml.v2](https://godoc.org/gopkg.in/yaml.v2)
* [gopkg.in/yaml.v3](https://godoc.org/gopkg.in/yaml.v3)


================================================
FILE: bubbler.go
================================================
package fizz

import (
	"os"
	"strings"

	"github.com/gobuffalo/plush/v4"
)

type BubbleType int

type Bubbler struct {
	Translator
	data []string
}

func NewBubbler(t Translator) *Bubbler {
	return &Bubbler{
		Translator: t,
		data:       []string{},
	}
}

func (b *Bubbler) String() string {
	return strings.Join(b.data, "\n")
}

func (b *Bubbler) Bubble(s string) (string, error) {
	f := fizzer{b}
	ctx := plush.NewContextWith(map[string]interface{}{
		"exec":             f.Exec(os.Stdout),
		"create_table":     f.CreateTable,
		"change_column":    f.ChangeColumn,
		"add_column":       f.AddColumn,
		"drop_column":      f.DropColumn,
		"rename_column":    f.RenameColumn,
		"raw":              f.RawSQL,
		"sql":              f.RawSQL,
		"add_index":        f.AddIndex,
		"drop_index":       f.DropIndex,
		"rename_index":     f.RenameIndex,
		"add_foreign_key":  f.AddForeignKey,
		"drop_foreign_key": f.DropForeignKey,
		"drop_table":       f.DropTable,
		"rename_table":     f.RenameTable,
	})

	err := plush.RunScript(s, ctx)

	return b.String(), err
}


================================================
FILE: bubbler_test.go
================================================
package fizz

import (
	"bytes"
	"strings"
	"testing"

	"github.com/stretchr/testify/require"
)

func Test_Exec(t *testing.T) {
	r := require.New(t)

	b := NewBubbler(nil)
	f := fizzer{b}
	bb := &bytes.Buffer{}
	c := f.Exec(bb)
	r.NoError(c("echo hello"))
	r.Equal("hello", strings.TrimSpace(bb.String()))
}

func Test_ExecQuoted(t *testing.T) {
	r := require.New(t)

	b := NewBubbler(nil)
	f := fizzer{b}
	bb := &bytes.Buffer{}
	c := f.Exec(bb)
	// without proper splitting we would get "'a b c'"
	r.NoError(c("echo 'a b c'"))
	r.Equal("a b c", strings.TrimSpace(bb.String()))
}


================================================
FILE: columns.go
================================================
package fizz

import (
	"encoding/json"
	"fmt"
	"sort"
	"strings"
)

// Deprecated: Fizz won't force you to have an ID field now.
var INT_ID_COL = Column{
	Name:    "id",
	Primary: true,
	ColType: "integer",
	Options: Options{},
}

// Deprecated: Fizz won't force you to have an ID field now.
var UUID_ID_COL = Column{
	Name:    "id",
	Primary: true,
	ColType: "uuid",
	Options: Options{},
}

var CREATED_COL = Column{Name: "created_at", ColType: "timestamp", Options: nil}
var UPDATED_COL = Column{Name: "updated_at", ColType: "timestamp", Options: nil}

type Column struct {
	Name    string
	ColType string
	Primary bool
	Options map[string]interface{}
}

func (c Column) String() string {
	if c.Primary || c.Options != nil {
		var opts map[string]interface{}
		if c.Options == nil {
			opts = make(map[string]interface{})
		} else {
			opts = c.Options
		}
		if c.Primary {
			opts["primary"] = true
		}

		o := make([]string, 0, len(opts))
		for k, v := range opts {
			vv, _ := json.Marshal(v)
			o = append(o, fmt.Sprintf("%s: %s", k, string(vv)))
		}
		sort.SliceStable(o, func(i, j int) bool { return o[i] < o[j] })
		return fmt.Sprintf(`t.Column("%s", "%s", {%s})`, c.Name, c.ColType, strings.Join(o, ", "))
	}
	return fmt.Sprintf(`t.Column("%s", "%s")`, c.Name, c.ColType)
}

func (f fizzer) ChangeColumn(table, name, ctype string, options Options) error {
	t := Table{
		Name: table,
		Columns: []Column{
			{Name: name, ColType: ctype, Options: options},
		},
	}
	return f.add(f.Bubbler.ChangeColumn(t))
}

func (f fizzer) AddColumn(table, name, ctype string, options Options) error {
	t := Table{
		Name: table,
		Columns: []Column{
			{Name: name, ColType: ctype, Options: options},
		},
	}
	return f.add(f.Bubbler.AddColumn(t))
}

func (f fizzer) DropColumn(table, name string) error {
	t := Table{
		Name: table,
		Columns: []Column{
			{Name: name},
		},
	}
	return f.add(f.Bubbler.DropColumn(t))
}

func (f fizzer) RenameColumn(table, old, new string) error {
	t := Table{
		Name: table,
		Columns: []Column{
			{Name: old},
			{Name: new},
		},
	}
	return f.add(f.Bubbler.RenameColumn(t))
}


================================================
FILE: columns_test.go
================================================
package fizz_test

import (
	"testing"

	"github.com/gobuffalo/fizz"
	"github.com/stretchr/testify/require"
)

func Test_Column_Stringer(t *testing.T) {
	t.Run("primary column", func(tt *testing.T) {
		r := require.New(tt)
		c := fizz.Column{
			Name:    "pk",
			ColType: "int",
			Primary: true,
		}

		r.Equal(`t.Column("pk", "int", {primary: true})`, c.String())
	})

	t.Run("primary column with raw default", func(tt *testing.T) {
		r := require.New(tt)
		c := fizz.Column{
			Name:    "pk",
			ColType: "int",
			Primary: true,
			Options: map[string]interface{}{
				"default_raw": "uuid_generate_v4()",
			},
		}

		r.Equal(`t.Column("pk", "int", {default_raw: "uuid_generate_v4()", primary: true})`, c.String())
	})

	t.Run("simple column", func(tt *testing.T) {
		r := require.New(tt)
		c := fizz.Column{
			Name:    "name",
			ColType: "string",
		}

		r.Equal(`t.Column("name", "string")`, c.String())
	})

	t.Run("with option", func(tt *testing.T) {
		r := require.New(tt)
		c := fizz.Column{
			Name:    "alive",
			ColType: "boolean",
			Options: map[string]interface{}{
				"null": true,
			},
		}

		r.Equal(`t.Column("alive", "boolean", {null: true})`, c.String())
	})

	t.Run("with string option", func(tt *testing.T) {
		r := require.New(tt)
		c := fizz.Column{
			Name:    "price",
			ColType: "numeric",
			Options: map[string]interface{}{
				"default": "1.00",
			},
		}

		r.Equal(`t.Column("price", "numeric", {default: "1.00"})`, c.String())
	})
}


================================================
FILE: database.yml
================================================
mysql:
  dialect: "mysql"
  database: "pop_test"
  host: {{ envOr "MYSQL_HOST" "127.0.0.1"  }}
  port: {{ envOr "MYSQL_PORT" "3307"  }}
  user: {{ envOr "MYSQL_USER"  "root"  }}
  password: {{ envOr "MYSQL_PASSWORD" "root"  }}

postgres:
  url: "postgres://postgres:postgres@localhost:5433/pop_test?sslmode=disable"
  pool: 25

cockroach:
  # url: "cockroach://root@127.0.0.1:26258/pop_test?application_name=cockroach&sslmode=disable"
  dialect: "cockroach"
  database: "pop_test"
  host: {{ envOr "COCKROACH_HOST" "127.0.0.1"  }}
  port: {{ envOr "COCKROACH_PORT" "26258"  }}
  user: {{ envOr "COCKROACH_USER" "root"  }}
  password: {{ envOr "COCKROACH_PASSWORD" ""  }}
  options:
    sslmode: disable

sqlserver:
  dialect: "sqlserver"
  database: "pop_test"
  host: {{ envOr "MSSQLSERVER_HOST" "127.0.0.1"  }}
  port: {{ envOr "MSSQLSERVER_PORT" "1433"  }}
  user: {{ envOr "MSSQLSERVER_USER" "sa"  }}
  password: {{ envOr "MSSQLSERVER_PASSWORD" "Tt@12345678"  }}

sqlite:
  dialect: "sqlite3"
  database: "./tmp/test.sqlite"
  options:
    mode: rwc



================================================
FILE: docker-compose.yml
================================================
version: '2'

services:
  mysql:
    image: mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=pop_test
      - MYSQL_USER=pop
      - MYSQL_PASSWORD=pop
    #volumes:
      #- ./_vol/mysql:/docker-entrypoint-initdb.d
    ports:
      - "3307:3306"
    healthcheck:
      test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
      interval: 5s
      timeout: 5s
      retries: 10
      start_period: 3s

  postgres:
    image: postgres:10
    environment:
      - POSTGRES_DB=pop_test
      - POSTGRES_PASSWORD=postgres
    ports:
      - "5433:5432"
    #volumes:
      #- ./_vol/postgres:/docker-entrypoint-initdb.d
    healthcheck:
      test: ["CMD", "pg_isready"]
      interval: 5s
      timeout: 5s
      retries: 10
      start_period: 3s

  cockroach:
    image: cockroachdb/cockroach:latest-v21.1
    ports:
      - "26258:26257"
      - "8081:8080"
    #volumes:
      #- ./_vol/cockroach:/cockroach/cockroach-data
    command: start-single-node --insecure
    healthcheck:
      test: ["CMD", "curl", "http://localhost:8080/health"]
      interval: 5s
      timeout: 5s
      retries: 10
      start_period: 3s

#  mssqlserver:
#    image: "microsoft/mssql-server-linux"
#    environment:
#      - SA_PASSWORD=Tt@12345678
#      - MSSQLSERVER_PASSWORD=Tt@12345678
#      - ACCEPT_EULA=Y
#    ports:
#      - "1433:1433"


================================================
FILE: fizz.go
================================================
/*
Package fizz is a common DSL for writing SQL migrations
*/
package fizz

import (
	"io"
	"io/ioutil"
	"os"
	"os/exec"

	shellquote "github.com/kballard/go-shellquote"
)

// Options is a generic map of options.
type Options map[string]interface{}

type fizzer struct {
	Bubbler *Bubbler
}

func (f fizzer) add(s string, err error) error {
	if err != nil {
		return err
	}
	f.Bubbler.data = append(f.Bubbler.data, s)
	return nil
}

func (f fizzer) Exec(out io.Writer) func(string) error {
	return func(s string) error {
		args, err := shellquote.Split(s)
		if err != nil {
			return err
		}
		cmd := exec.Command(args[0], args[1:]...)
		cmd.Stdin = os.Stdin
		cmd.Stdout = out
		cmd.Stderr = os.Stderr
		err = cmd.Run()
		if err != nil {
			return err
		}
		return nil
	}
}

// AFile reads in a fizz migration from an io.Reader and translates its contents to SQL.
func AFile(f io.Reader, t Translator) (string, error) {
	b, err := ioutil.ReadAll(f)
	if err != nil {
		return "", err
	}
	return AString(string(b), t)
}

// AString reads a fizz string, and translates its contents to SQL.
func AString(s string, t Translator) (string, error) {
	b := NewBubbler(t)
	return b.Bubble(s)
}


================================================
FILE: foreign_keys.go
================================================
package fizz

import (
	"encoding/json"
	"fmt"
	"sort"
	"strings"
)

type ForeignKeyRef struct {
	Table   string
	Columns []string
}

type ForeignKey struct {
	Name       string
	Column     string
	References ForeignKeyRef
	Options    Options
}

func (f ForeignKey) String() string {
	refs := fmt.Sprintf(`{"%s": ["%s"]}`, f.References.Table, strings.Join(f.References.Columns, `", "`))
	var opts map[string]interface{}
	if f.Options == nil {
		opts = make(map[string]interface{})
	} else {
		opts = f.Options
	}

	o := make([]string, 0, len(opts))
	for k, v := range opts {
		vv, _ := json.Marshal(v)
		o = append(o, fmt.Sprintf("%s: %s", k, string(vv)))
	}
	sort.SliceStable(o, func(i, j int) bool { return o[i] < o[j] })
	return fmt.Sprintf(`t.ForeignKey("%s", %s, {%s})`, f.Column, refs, strings.Join(o, ", "))
}

func (f fizzer) AddForeignKey(table string, column string, refs interface{}, options Options) error {
	fkr, err := parseForeignKeyRef(refs)
	if err != nil {
		return err
	}
	fk := ForeignKey{
		Column:     column,
		References: fkr,
		Options:    options,
	}

	if options["name"] != nil {
		var ok bool
		fk.Name, ok = options["name"].(string)
		if !ok {
			return fmt.Errorf(`expected options field "name" to be of type "string" but got "%T"`, options["name"])
		}
	} else {
		fk.Name = fmt.Sprintf("%s_%s_%s_fk", table, fk.References.Table, strings.Join(fk.References.Columns, "_"))
	}

	return f.add(f.Bubbler.AddForeignKey(Table{
		Name:        table,
		ForeignKeys: []ForeignKey{fk},
	}))
}

func (f fizzer) DropForeignKey(table string, fk string, options Options) error {
	return f.add(f.Bubbler.DropForeignKey(Table{
		Name: table,
		ForeignKeys: []ForeignKey{
			{
				Name:    fk,
				Options: options,
			},
		},
	}))
}

func parseForeignKeyRef(refs interface{}) (ForeignKeyRef, error) {
	fkr := ForeignKeyRef{}
	refMap, ok := refs.(map[string]interface{})
	if !ok {
		return fkr, fmt.Errorf(`invalid references format %s\nmust be "{"table": ["colum1", "column2"]}"`, refs)
	}
	if len(refMap) != 1 {
		return fkr, fmt.Errorf("only one table is supported as Foreign key reference")
	}
	for table, columns := range refMap {
		fkr.Table = table
		for _, c := range columns.([]interface{}) {
			fkr.Columns = append(fkr.Columns, fmt.Sprintf("%s", c))
		}
	}

	return fkr, nil
}


================================================
FILE: go.mod
================================================
module github.com/gobuffalo/fizz

go 1.16

require (
	github.com/Masterminds/semver/v3 v3.1.1
	github.com/go-sql-driver/mysql v1.6.0
	github.com/gobuffalo/plush/v4 v4.1.16
	github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
	github.com/stretchr/testify v1.8.0
)


================================================
FILE: go.sum
================================================
github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc=
github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo=
github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
github.com/gobuffalo/flect v0.3.0 h1:erfPWM+K1rFNIQeRPdeEXxo8yFr/PO17lhRnS8FUrtk=
github.com/gobuffalo/flect v0.3.0/go.mod h1:5pf3aGnsvqvCj50AVni7mJJF8ICxGZ8HomberC3pXLE=
github.com/gobuffalo/github_flavored_markdown v1.1.3 h1:rSMPtx9ePkFB22vJ+dH+m/EUBS8doQ3S8LeEXcdwZHk=
github.com/gobuffalo/github_flavored_markdown v1.1.3/go.mod h1:IzgO5xS6hqkDmUh91BW/+Qxo/qYnvfzoz3A7uLkg77I=
github.com/gobuffalo/helpers v0.6.7 h1:C9CedoRSfgWg2ZoIkVXgjI5kgmSpL34Z3qdnzpfNVd8=
github.com/gobuffalo/helpers v0.6.7/go.mod h1:j0u1iC1VqlCaJEEVkZN8Ia3TEzfj/zoXANqyJExTMTA=
github.com/gobuffalo/plush/v4 v4.1.16 h1:Y6jVVTLdg1BxRXDIbTJz+J8QRzEAtv5ZwYpGdIFR7VU=
github.com/gobuffalo/plush/v4 v4.1.16/go.mod h1:6t7swVsarJ8qSLw1qyAH/KbrcSTwdun2ASEQkOznakg=
github.com/gobuffalo/tags/v3 v3.1.4 h1:X/ydLLPhgXV4h04Hp2xlbI2oc5MDaa7eub6zw8oHjsM=
github.com/gobuffalo/tags/v3 v3.1.4/go.mod h1:ArRNo3ErlHO8BtdA0REaZxijuWnWzF6PUXngmMXd2I0=
github.com/gobuffalo/validate/v3 v3.3.3 h1:o7wkIGSvZBYBd6ChQoLxkz2y1pfmhbI4jNJYh6PuNJ4=
github.com/gobuffalo/validate/v3 v3.3.3/go.mod h1:YC7FsbJ/9hW/VjQdmXPvFqvRis4vrRYFxr69WiNZw6g=
github.com/gofrs/uuid v4.2.0+incompatible h1:yyYWMnhkhrKwwr8gAOcOCYxOOscHgDS9yZgBrnJfGa0=
github.com/gofrs/uuid v4.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY=
github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c=
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs=
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/microcosm-cc/bluemonday v1.0.20 h1:flpzsq4KU3QIYAYGV/szUat7H+GPOXR0B2JU5A1Wp8Y=
github.com/microcosm-cc/bluemonday v1.0.20/go.mod h1:yfBmMi8mxvaZut3Yytv+jTXRY8mxyjJ0/kQBTElld50=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d h1:yKm7XZV6j9Ev6lojP2XaIshpT4ymkqhMeSghO5Ps00E=
github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE=
github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e h1:qpG93cPwA5f7s/ZPBJnGOYQNK/vKsaDaseuKT5Asee8=
github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
golang.org/x/net v0.0.0-20221002022538-bcab6841153b h1:6e93nYa3hNqAvLr0pD4PN1fFS+gKzp2zAXqrnTCstqU=
golang.org/x/net v0.0.0-20221002022538-bcab6841153b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0 h1:cu5kTvlzcw1Q5S9f5ip1/cpiB4nXvw1XYzFPGgzLUOY=
golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=


================================================
FILE: index.go
================================================
package fizz

import (
	"encoding/json"
	"fmt"
	"sort"
	"strings"
)

// Index is the index definition for fizz.
type Index struct {
	Name    string
	Columns []string
	Unique  bool
	Options Options
}

func (i Index) String() string {
	var opts map[string]interface{}
	if i.Options == nil {
		opts = make(map[string]interface{})
	} else {
		opts = i.Options
	}
	if i.Name != "" {
		opts["name"] = i.Name
	}
	if i.Unique {
		opts["unique"] = true
	}
	o := make([]string, 0, len(opts))
	for k, v := range opts {
		vv, _ := json.Marshal(v)
		o = append(o, fmt.Sprintf("%s: %s", k, string(vv)))
	}
	sort.SliceStable(o, func(i, j int) bool { return o[i] < o[j] })
	if len(i.Columns) > 1 {
		cols := make([]string, len(i.Columns))
		for k, v := range i.Columns {
			cols[k] = `"` + v + `"`
		}
		return fmt.Sprintf(`t.Index([%s], {%s})`, strings.Join(cols, ", "), strings.Join(o, ", "))
	}
	return fmt.Sprintf(`t.Index("%s", {%s})`, i.Columns[0], strings.Join(o, ", "))
}

func (f fizzer) AddIndex(table string, columns interface{}, options Options) error {
	t := NewTable(table, nil)
	if err := t.Index(columns, options); err != nil {
		return err
	}
	return f.add(f.Bubbler.AddIndex(t))
}

func (f fizzer) DropIndex(table, name string) error {
	return f.add(f.Bubbler.DropIndex(Table{
		Name: table,
		Indexes: []Index{
			{Name: name},
		},
	}))
}

func (f fizzer) RenameIndex(table, old, new string) error {
	return f.add(f.Bubbler.RenameIndex(Table{
		Name: table,
		Indexes: []Index{
			{Name: old},
			{Name: new},
		},
	}))
}


================================================
FILE: raw_sql.go
================================================
package fizz

import (
	"strings"
)

func (f fizzer) RawSQL(sql string) error {
	if !strings.HasSuffix(sql, ";") {
		sql += ";"
	}
	return f.add(sql, nil)
}

// Deprecated: use RawSQL instead.
func (f fizzer) RawSql(sql string) error {
	return f.RawSQL(sql)
}


================================================
FILE: tables.go
================================================
package fizz

import (
	"bytes"
	"encoding/json"
	"errors"
	"fmt"
	"sort"
	"strings"

	"github.com/gobuffalo/plush/v4"
)

// Table is the table definition for fizz.
type Table struct {
	Name              string `db:"name"`
	Columns           []Column
	Indexes           []Index
	ForeignKeys       []ForeignKey
	primaryKeys       []string
	Options           map[string]interface{}
	columnsCache      map[string]struct{}
	useTimestampMacro bool
}

func (t Table) String() string {
	return t.Fizz()
}

// Fizz returns the fizz DDL to create the table.
func (t Table) Fizz() string {
	var buff bytes.Buffer
	timestampsOpt, _ := t.Options["timestamps"].(bool)
	// Write table options
	o := make([]string, 0, len(t.Options))
	for k, v := range t.Options {
		// Special handling for timestamps option
		if k == "timestamps" {
			continue
		}
		vv, _ := json.Marshal(v)
		o = append(o, fmt.Sprintf("%s: %s", k, string(vv)))
	}
	if len(o) > 0 {
		sort.SliceStable(o, func(i, j int) bool { return o[i] < o[j] })
		buff.WriteString(fmt.Sprintf("create_table(\"%s\", {%s}) {\n", t.Name, strings.Join(o, ", ")))
	} else {
		buff.WriteString(fmt.Sprintf("create_table(\"%s\") {\n", t.Name))
	}
	// Write columns
	if t.useTimestampMacro {
		for _, c := range t.Columns {
			if c.Name == "created_at" || c.Name == "updated_at" {
				continue
			}
			buff.WriteString(fmt.Sprintf("\t%s\n", c.String()))
		}
	} else {
		for _, c := range t.Columns {
			buff.WriteString(fmt.Sprintf("\t%s\n", c.String()))
		}
	}
	if t.useTimestampMacro {
		buff.WriteString("\tt.Timestamps()\n")
	} else if timestampsOpt {
		// Missing timestamp columns will only be added on fizz execution, so we need to consider them as present.
		if !t.HasColumns("created_at") {
			buff.WriteString(fmt.Sprintf("\t%s\n", CREATED_COL.String()))
		}
		if !t.HasColumns("updated_at") {
			buff.WriteString(fmt.Sprintf("\t%s\n", UPDATED_COL.String()))
		}
	}
	// Write primary key (single column pk will be written in inline form as the column opt)
	if len(t.primaryKeys) > 1 {
		pks := make([]string, len(t.primaryKeys))
		for i, pk := range t.primaryKeys {
			pks[i] = fmt.Sprintf("\"%s\"", pk)
		}
		buff.WriteString(fmt.Sprintf("\tt.PrimaryKey(%s)\n", strings.Join(pks, ", ")))
	}
	// Write indexes
	for _, i := range t.Indexes {
		buff.WriteString(fmt.Sprintf("\t%s\n", i.String()))
	}
	// Write foreign keys
	for _, fk := range t.ForeignKeys {
		buff.WriteString(fmt.Sprintf("\t%s\n", fk.String()))
	}
	buff.WriteString("}")
	return buff.String()
}

// UnFizz returns the fizz DDL to remove the table.
func (t Table) UnFizz() string {
	return fmt.Sprintf("drop_table(\"%s\")", t.Name)
}

func (t *Table) DisableTimestamps() {
	t.Options["timestamps"] = false
}

// Column adds a column to the table definition.
func (t *Table) Column(name string, colType string, options Options) error {
	if _, found := t.columnsCache[name]; found {
		return fmt.Errorf("duplicated column %s", name)
	}
	var primary bool
	if _, ok := options["primary"]; ok {
		if t.primaryKeys != nil {
			return errors.New("could not define multiple primary keys")
		}
		primary = true
		t.primaryKeys = []string{name}
	}
	c := Column{
		Name:    name,
		ColType: colType,
		Options: options,
		Primary: primary,
	}
	if t.columnsCache == nil {
		t.columnsCache = make(map[string]struct{})
	}
	t.columnsCache[name] = struct{}{}
	// Ensure id is first
	if name == "id" {
		t.Columns = append([]Column{c}, t.Columns...)
	} else {
		t.Columns = append(t.Columns, c)
	}
	if (name == "created_at" || name == "updated_at") && colType != "timestamp" {
		// timestamp macro only works for time type
		t.useTimestampMacro = false
	}
	return nil
}

// ForeignKey adds a new foreign key to the table definition.
func (t *Table) ForeignKey(column string, refs interface{}, options Options) error {
	fkr, err := parseForeignKeyRef(refs)
	if err != nil {
		return err
	}
	fk := ForeignKey{
		Column:     column,
		References: fkr,
		Options:    options,
	}

	if options["name"] != nil {
		var ok bool
		fk.Name, ok = options["name"].(string)
		if !ok {
			return fmt.Errorf(`expected options field "name" to be of type "string" but got "%T"`, options["name"])
		}
	} else {
		fk.Name = fmt.Sprintf("%s_%s_%s_fk", t.Name, fk.References.Table, strings.Join(fk.References.Columns, "_"))
	}

	t.ForeignKeys = append(t.ForeignKeys, fk)
	return nil
}

// Index adds a new index to the table definition.
func (t *Table) Index(columns interface{}, options Options) error {
	i := Index{}
	switch tp := columns.(type) {
	default:
		return fmt.Errorf("unexpected type %T for %s index columns", tp, t.Name) // %T prints whatever type t has
	case string:
		i.Columns = []string{tp}
	case []string:
		if len(tp) == 0 {
			return fmt.Errorf("expected at least one column to apply %s index", t.Name)
		}
		i.Columns = tp
	case []interface{}:
		if len(tp) == 0 {
			return fmt.Errorf("expected at least one column to apply %s index", t.Name)
		}
		cl := make([]string, len(tp))
		for i, c := range tp {
			var ok bool
			cl[i], ok = c.(string)
			if !ok {
				return fmt.Errorf(`expected variable to be of type "string" but got "%T"`, c)
			}
		}
		i.Columns = cl
	}
	if options["name"] != nil {
		var ok bool
		i.Name, ok = options["name"].(string)
		if !ok {
			return fmt.Errorf(`expected options field "name" to be of type "string" but got "%T"`, options["name"])
		}
	} else {
		i.Name = fmt.Sprintf("%s_%s_idx", t.Name, strings.Join(i.Columns, "_"))
	}

	unique, _ := options["unique"].(bool)
	i.Unique = unique

	t.Indexes = append(t.Indexes, i)
	return nil
}

// Timestamp is a shortcut to add a timestamp column with default options.
func (t *Table) Timestamp(name string) error {
	return t.Column(name, "timestamp", Options{})
}

// Timestamps adds created_at and updated_at columns to the Table definition.
func (t *Table) Timestamps() error {
	if err := t.Timestamp("created_at"); err != nil {
		return err
	}
	return t.Timestamp("updated_at")
}

// PrimaryKey adds a primary key to the table. It's useful to define a composite
// primary key.
func (t *Table) PrimaryKey(pk ...string) error {
	if len(pk) == 0 {
		return errors.New("missing columns for primary key")
	}
	if t.primaryKeys != nil {
		return errors.New("duplicate primary key")
	}
	if !t.HasColumns(pk...) {
		return errors.New("columns must be declared before the primary key")
	}
	if len(pk) == 1 {
		for i, c := range t.Columns {
			if c.Name == pk[0] {
				t.Columns[i].Primary = true
				break
			}
		}
	}
	t.primaryKeys = make([]string, 0)
	t.primaryKeys = append(t.primaryKeys, pk...)
	return nil
}

// PrimaryKeys gets the list of registered primary key fields.
func (t *Table) PrimaryKeys() []string {
	return t.primaryKeys
}

// ColumnNames returns the names of the Table's columns.
func (t *Table) ColumnNames() []string {
	cols := make([]string, len(t.Columns))
	for i, c := range t.Columns {
		cols[i] = c.Name
	}
	return cols
}

// HasColumns checks if the Table has all the given columns.
func (t *Table) HasColumns(args ...string) bool {
	for _, a := range args {
		if _, ok := t.columnsCache[a]; !ok {
			// Just because the cache couldn't find the column doesn't mean it's not there.
			// Let's see if it really doesn't exist!
			var found bool
			for _, name := range t.ColumnNames() {
				if found = name == a; found {
					break
				}
			}
			return found
		}
	}
	return true
}

// NewTable creates a new Table.
func NewTable(name string, opts map[string]interface{}) Table {
	if opts == nil {
		opts = make(map[string]interface{})
	}
	// auto-timestamp as default
	if enabled, exists := opts["timestamps"]; !exists || enabled == true {
		opts["timestamps"] = true
	}
	useTimestampMacro, _ := opts["timestamps"].(bool)
	return Table{
		Name:              name,
		Columns:           []Column{},
		Indexes:           []Index{},
		Options:           opts,
		columnsCache:      map[string]struct{}{},
		useTimestampMacro: useTimestampMacro,
	}
}

func (f fizzer) CreateTable(name string, opts map[string]interface{}, help plush.HelperContext) error {
	t := NewTable(name, opts)
	if help.HasBlock() {
		ctx := help.Context.New()
		ctx.Set("t", &t)
		if _, err := help.BlockWith(ctx); err != nil {
			return err
		}
	}

	if t.Options["timestamps"].(bool) {
		if !t.HasColumns("created_at") {
			if err := t.Timestamp("created_at"); err != nil {
				return err
			}
		}
		if !t.HasColumns("updated_at") {
			if err := t.Timestamp("updated_at"); err != nil {
				return err
			}
		}
	}

	return f.add(f.Bubbler.CreateTable(t))
}

func (f fizzer) DropTable(name string) error {
	return f.add(f.Bubbler.DropTable(Table{Name: name}))
}

func (f fizzer) RenameTable(old, new string) error {
	return f.add(f.Bubbler.RenameTable([]Table{
		{Name: old},
		{Name: new},
	}))
}


================================================
FILE: tables_private_test.go
================================================
package fizz

import (
	"testing"

	"github.com/stretchr/testify/require"
)

func Test_Table_HasColumnNoCache(t *testing.T) {
	r := require.New(t)
	table := NewTable("users", nil)
	r.NoError(table.Column("firstname", "string", nil))
	r.NoError(table.Column("lastname", "string", nil))
	table.columnsCache = map[string]struct{}{}
	r.True(table.HasColumns("firstname", "lastname"))
	r.False(table.HasColumns("age"))
}


================================================
FILE: tables_test.go
================================================
package fizz_test

import (
	"testing"

	"github.com/gobuffalo/fizz"
	"github.com/stretchr/testify/require"
)

func Test_Table_Stringer(t *testing.T) {
	r := require.New(t)

	expected :=
		`create_table("users") {
	t.Column("name", "string")
	t.Column("alive", "boolean", {null: true})
	t.Column("birth_date", "timestamp", {null: true})
	t.Column("bio", "text", {null: true})
	t.Column("price", "numeric", {default: "1.00", null: true})
	t.Column("email", "string", {default: "foo@example.com", size: 50})
	t.Timestamps()
}`

	table := fizz.NewTable("users", nil)
	r.NoError(table.Column("name", "string", nil))
	r.NoError(table.Column("alive", "boolean", fizz.Options{
		"null": true,
	}))
	r.NoError(table.Column("birth_date", "timestamp", fizz.Options{
		"null": true,
	}))
	r.NoError(table.Column("bio", "text", fizz.Options{
		"null": true,
	}))
	r.NoError(table.Column("price", "numeric", fizz.Options{
		"null":    true,
		"default": "1.00",
	}))
	r.NoError(table.Column("email", "string", fizz.Options{
		"size":    50,
		"default": "foo@example.com",
	}))

	r.Equal(expected, table.String())
}

func Test_Table_StringerOpts(t *testing.T) {
	r := require.New(t)

	// Timestamps
	expected :=
		`create_table("users") {
	t.Column("name", "string")
	t.Timestamps()
}`

	table := fizz.NewTable("users", map[string]interface{}{
		"timestamps": true,
	})
	r.NoError(table.Column("name", "string", nil))

	r.Equal(expected, table.String())

	// Random option
	expected =
		`create_table("users", {myopt: "test"}) {
	t.Column("name", "string")
	t.Timestamps()
}`

	table = fizz.NewTable("users", map[string]interface{}{
		"myopt": "test",
	})
	r.NoError(table.Column("name", "string", nil))

	r.Equal(expected, table.String())
}

func Test_Table_StringerAutoDisableTimestamps(t *testing.T) {
	r := require.New(t)

	// Custom type timestamps
	expected :=
		`create_table("users") {
	t.Column("name", "string")
	t.Column("created_at", "int")
	t.Column("updated_at", "int")
}`

	table := fizz.NewTable("users", map[string]interface{}{
		"timestamps": true,
	})
	r.NoError(table.Column("name", "string", nil))
	r.NoError(table.Column("created_at", "int", nil))
	r.NoError(table.Column("updated_at", "int", nil))

	r.Equal(expected, table.String())

	// only one timestamp override
	expected =
		`create_table("users") {
	t.Column("name", "string")
	t.Column("created_at", "int")
	t.Column("updated_at", "timestamp")
}`

	table = fizz.NewTable("users", map[string]interface{}{
		"timestamps": true,
	})
	r.NoError(table.Column("name", "string", nil))
	r.NoError(table.Column("created_at", "int", nil))

	r.Equal(expected, table.String())

	// timestamp columns provided but same as default
	expected =
		`create_table("users") {
	t.Column("name", "string")
	t.Timestamps()
}`

	table = fizz.NewTable("users", map[string]interface{}{
		"timestamps": true,
	})
	r.NoError(table.Column("name", "string", nil))
	r.NoError(table.Column("created_at", "timestamp", nil))
	r.NoError(table.Column("updated_at", "timestamp", nil))

	r.Equal(expected, table.String())
}

func Test_Table_StringerIndex(t *testing.T) {
	r := require.New(t)

	// Single column index
	expected :=
		`create_table("users") {
	t.Column("name", "string")
	t.Column("email", "string")
	t.Timestamps()
	t.Index("email", {name: "users_email_idx", unique: true})
}`

	table := fizz.NewTable("users", nil)
	r.NoError(table.Column("name", "string", nil))
	r.NoError(table.Column("email", "string", nil))
	r.NoError(table.Index("email", fizz.Options{
		"unique": true,
	}))

	r.Equal(expected, table.String())

	// Multiple-column index
	expected =
		`create_table("users") {
	t.Column("name", "string")
	t.Column("email", "string")
	t.Timestamps()
	t.Index(["name", "email"], {name: "users_name_email_idx"})
}`

	table = fizz.NewTable("users", nil)
	r.NoError(table.Column("name", "string", nil))
	r.NoError(table.Column("email", "string", nil))
	r.NoError(table.Index([]string{"name", "email"}, nil))

	r.Equal(expected, table.String())
}

func Test_Table_StringerForeignKey(t *testing.T) {
	r := require.New(t)

	// Single column
	expected :=
		`create_table("users_color") {
	t.Column("name", "string")
	t.Column("user_id", "int")
	t.Timestamps()
	t.ForeignKey("user_id", {"users": ["id"]}, {on_delete: "cascade"})
}`

	table := fizz.NewTable("users_color", nil)
	r.NoError(table.Column("name", "string", nil))
	r.NoError(table.Column("user_id", "int", nil))
	r.NoError(table.ForeignKey("user_id",
		map[string]interface{}{
			"users": []interface{}{"id"},
		},
		fizz.Options{
			"on_delete": "cascade",
		}))

	r.Equal(expected, table.String())

	// Multiple columns
	expected =
		`create_table("users_color") {
	t.Column("name", "string")
	t.Column("user_id", "int")
	t.Timestamps()
	t.ForeignKey("user_id", {"users": ["id", "id2"]}, {on_delete: "cascade", on_update: "restrict"})
}`

	table = fizz.NewTable("users_color", nil)
	r.NoError(table.Column("name", "string", nil))
	r.NoError(table.Column("user_id", "int", nil))
	r.NoError(table.ForeignKey("user_id",
		map[string]interface{}{
			"users": []interface{}{"id", "id2"},
		},
		fizz.Options{
			"on_delete": "cascade",
			"on_update": "restrict",
		}))

	r.Equal(expected, table.String())
}

func Test_Table_UnFizz(t *testing.T) {
	r := require.New(t)
	table := fizz.NewTable("users", nil)
	r.Equal(`drop_table("users")`, table.UnFizz())
}

func Test_Table_HasColumn(t *testing.T) {
	r := require.New(t)
	table := fizz.NewTable("users", nil)
	r.NoError(table.Column("firstname", "string", nil))
	r.NoError(table.Column("lastname", "string", nil))
	r.True(table.HasColumns("firstname", "lastname"))
	r.False(table.HasColumns("age"))
}

func Test_Table_ColumnNames(t *testing.T) {
	r := require.New(t)
	table := fizz.NewTable("users", nil)
	r.NoError(table.Column("firstname", "string", nil))
	r.NoError(table.Column("lastname", "string", nil))
	r.Equal([]string{"firstname", "lastname"}, table.ColumnNames())
}

func Test_Table_DuplicateColumn(t *testing.T) {
	r := require.New(t)
	table := fizz.NewTable("users", map[string]interface{}{})
	r.NoError(table.Column("name", "string", fizz.Options{}))
	r.Error(table.Column("name", "string", fizz.Options{}))
	r.Error(table.Column("name", "string", fizz.Options{
		"null": true,
	}))
}

func Test_Table_AddEmptyIndex(t *testing.T) {
	r := require.New(t)
	// Empty index
	table := fizz.NewTable("users", nil)
	r.NoError(table.Column("name", "string", nil))
	r.NoError(table.Column("email", "string", nil))
	r.Error(table.Index([]string{}, nil))
}

func Test_Table_AddPrimaryKey(t *testing.T) {
	r := require.New(t)

	// Add single primary key
	expected :=
		`create_table("users") {
	t.Column("id", "int", {primary: true})
	t.Column("name", "string")
	t.Column("email", "string")
	t.Timestamps()
}`
	table := fizz.NewTable("users", nil)
	r.NoError(table.Column("id", "int", fizz.Options{"primary": true}))
	r.NoError(table.Column("name", "string", nil))
	r.NoError(table.Column("email", "string", nil))
	r.Equal(expected, table.String())

	table = fizz.NewTable("users", nil)
	r.NoError(table.Column("id", "int", nil))
	r.NoError(table.Column("name", "string", nil))
	r.NoError(table.Column("email", "string", nil))
	r.NoError(table.PrimaryKey("id"))
	r.Equal(expected, table.String())

	// Add composite primary key
	expected =
		`create_table("user_privileges") {
	t.Column("user_id", "int")
	t.Column("privilege_id", "int")
	t.Timestamps()
	t.PrimaryKey("user_id", "privilege_id")
}`
	table = fizz.NewTable("user_privileges", nil)
	r.NoError(table.Column("user_id", "int", nil))
	r.NoError(table.Column("privilege_id", "int", nil))
	r.NoError(table.PrimaryKey("user_id", "privilege_id"))
	r.Equal(expected, table.String())
}

func Test_Table_AddPrimaryKey_Errors(t *testing.T) {
	r := require.New(t)

	// Primary key on unknown column
	table := fizz.NewTable("users", nil)
	r.NoError(table.Column("id", "int", nil))
	r.Error(table.PrimaryKey("id2"))

	// Duplicate primary key
	table = fizz.NewTable("users", nil)
	r.NoError(table.Column("id", "int", nil))
	r.NoError(table.PrimaryKey("id"))
	r.Error(table.PrimaryKey("id"))

	// Duplicate primary key
	table = fizz.NewTable("users", nil)
	r.NoError(table.Column("id", "int", fizz.Options{"primary": true}))
	r.Error(table.PrimaryKey("id"))

	// Duplicate inline primary key
	table = fizz.NewTable("users", nil)
	r.NoError(table.Column("id", "int", fizz.Options{"primary": true}))
	r.Error(table.Column("id2", "int", fizz.Options{"primary": true}))
}


================================================
FILE: test.sh
================================================
#!/bin/bash

set -e

# NOTE: See also docker-compose.yml and database.yml to configure database
# properties.
export MYSQL_PORT=3307
export COCKROACH_PORT=26258

COMPOSE=docker-compose
which docker-compose || COMPOSE="docker compose"

args=$@

function cleanup {
    echo "Cleanup resources..."
    $COMPOSE down
    docker volume prune -f
    find ./tmp -name *.sqlite* -delete || true
}
# defer cleanup, so it will be executed even after premature exit
trap cleanup EXIT

function test {
  export SODA_DIALECT=$1

  echo ""
  echo "######################################################################"
  echo "### Running unit tests for $SODA_DIALECT"
  soda drop -e $SODA_DIALECT
  soda create -e $SODA_DIALECT
  soda migrate -e $SODA_DIALECT -p ./testdata/migrations
  go test -tags sqlite -count=1 $args ./...

  echo ""
  echo "######################################################################"
  echo "### Running e2e tests for $1"
  soda drop -e $SODA_DIALECT
  soda create -e $SODA_DIALECT
  pushd testdata/e2e; go test -tags sqlite,e2e -count=1 $args ./...; popd
}


$COMPOSE up --wait

go install -tags sqlite github.com/gobuffalo/pop/v6/soda@latest

test "sqlite"
test "postgres"
test "cockroach"
test "mysql"

# Does not appear to be implemented in pop:
# test "sqlserver"


================================================
FILE: testdata/e2e/cockroach_test.go
================================================
package e2e_test

import (
	"github.com/gobuffalo/pop/v6"
	"github.com/stretchr/testify/suite"
)

type CockroachSuite struct {
	suite.Suite
}

func (s *CockroachSuite) Test_Cockroach_MigrationSteps() {
	r := s.Require()

	c, err := pop.Connect("cockroach")
	r.NoError(err)
	r.NoError(retryOpen(c))

	run(&s.Suite, c, runTestData(&s.Suite, c, true))
}


================================================
FILE: testdata/e2e/fixtures/cockroach/down/0.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # 1 row


================================================
FILE: testdata/e2e/fixtures/cockroach/down/1.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 247
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	username VARCHAR(255) NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at, username)
);
-- # 2 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/down/10.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 208
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at)
);
-- # row 3
-- ## 352
CREATE TABLE public.e2e_user_posts (
	id UUID NOT NULL,
	content VARCHAR(255) NOT NULL DEFAULT '':::STRING,
	user_id UUID NOT NULL,
	slug VARCHAR(64) NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	FAMILY "primary" (id, content, user_id, slug)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_posts ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_posts VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/down/11.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 208
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at)
);
-- # row 3
-- ## 352
CREATE TABLE public.e2e_user_posts (
	id UUID NOT NULL,
	content VARCHAR(255) NOT NULL DEFAULT '':::STRING,
	slug VARCHAR(32) NOT NULL,
	user_id UUID NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	FAMILY "primary" (id, content, slug, user_id)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_posts ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_posts VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/down/12.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 210
CREATE TABLE public.e2e_authors (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at)
);
-- # row 3
-- ## 352
CREATE TABLE public.e2e_user_posts (
	id UUID NOT NULL,
	content VARCHAR(255) NOT NULL DEFAULT '':::STRING,
	slug VARCHAR(32) NOT NULL,
	user_id UUID NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	FAMILY "primary" (id, content, slug, user_id)
);
-- # row 4
-- ## 154
ALTER TABLE public.e2e_user_posts ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_authors(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_posts VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/down/13.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 210
CREATE TABLE public.e2e_authors (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at)
);
-- # row 3
-- ## 358
CREATE TABLE public.e2e_user_posts (
	id UUID NOT NULL,
	content VARCHAR(255) NOT NULL DEFAULT '':::STRING,
	slug VARCHAR(32) NOT NULL,
	author_id UUID NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	INDEX e2e_user_notes_user_id_idx (author_id ASC),
	FAMILY "primary" (id, content, slug, author_id)
);
-- # row 4
-- ## 156
ALTER TABLE public.e2e_user_posts ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (author_id) REFERENCES public.e2e_authors(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_posts VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/down/14.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 210
CREATE TABLE public.e2e_authors (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at)
);
-- # row 3
-- ## 405
CREATE TABLE public.e2e_user_posts (
	id UUID NOT NULL,
	content VARCHAR(255) NOT NULL DEFAULT '':::STRING,
	slug VARCHAR(32) NOT NULL,
	published BOOL NOT NULL DEFAULT false,
	author_id UUID NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	INDEX e2e_user_notes_user_id_idx (author_id ASC),
	FAMILY "primary" (id, content, slug, published, author_id)
);
-- # row 4
-- ## 156
ALTER TABLE public.e2e_user_posts ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (author_id) REFERENCES public.e2e_authors(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_posts VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/down/15.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 210
CREATE TABLE public.e2e_authors (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at)
);
-- # row 3
-- ## 405
CREATE TABLE public.e2e_user_posts (
	id UUID NOT NULL,
	content VARCHAR(255) NOT NULL DEFAULT '':::STRING,
	slug VARCHAR(32) NOT NULL,
	published BOOL NOT NULL DEFAULT false,
	author_id UUID NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	INDEX e2e_user_notes_user_id_idx (author_id ASC),
	FAMILY "primary" (id, content, slug, published, author_id)
);
-- # row 4
-- ## 119
CREATE TABLE public.e2e_flow (
	id UUID NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id)
);
-- # row 5
-- ## 122
CREATE TABLE public.e2e_address (
	id UUID NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id)
);
-- # row 6
-- ## 492
CREATE TABLE public.e2e_token (
	id UUID NOT NULL,
	token VARCHAR(64) NOT NULL,
	e2e_address_id UUID NOT NULL,
	expires_at TIMESTAMP NOT NULL DEFAULT '2000-01-01 00:00:00':::TIMESTAMP,
	issued_at TIMESTAMP NOT NULL DEFAULT '2000-01-01 00:00:00':::TIMESTAMP,
	e2e_flow_id UUID NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	UNIQUE INDEX e2e_token_uq_idx (token ASC),
	INDEX e2e_token_idx (token ASC),
	FAMILY "primary" (id, token, e2e_address_id, expires_at, issued_at, e2e_flow_id)
);
-- # row 7
-- ## 156
ALTER TABLE public.e2e_user_posts ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (author_id) REFERENCES public.e2e_authors(id) ON DELETE CASCADE;
-- # row 8
-- ## 153
ALTER TABLE public.e2e_token ADD CONSTRAINT e2e_token_e2e_address_id_fk FOREIGN KEY (e2e_address_id) REFERENCES public.e2e_address(id) ON DELETE CASCADE;
-- # row 9
-- ## 144
ALTER TABLE public.e2e_token ADD CONSTRAINT e2e_token_e2e_flow_id_fk FOREIGN KEY (e2e_flow_id) REFERENCES public.e2e_flow(id) ON DELETE CASCADE;
-- # row 10
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 11
-- ## 85
ALTER TABLE public.e2e_user_posts VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # row 12
-- ## 77
ALTER TABLE public.e2e_token VALIDATE CONSTRAINT e2e_token_e2e_address_id_fk;
-- # row 13
-- ## 74
ALTER TABLE public.e2e_token VALIDATE CONSTRAINT e2e_token_e2e_flow_id_fk;
-- # 13 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/down/2.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 247
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	username VARCHAR(255) NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at, username)
);
-- # row 3
-- ## 341
CREATE TABLE public.e2e_user_notes (
	id UUID NOT NULL,
	user_id UUID NOT NULL,
	notes VARCHAR(255) NULL,
	title VARCHAR(64) NOT NULL DEFAULT '':::STRING,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	INDEX e2e_user_notes_title_idx (title ASC),
	FAMILY "primary" (id, user_id, notes, title)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_notes ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_notes VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/down/3.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 247
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	username VARCHAR(255) NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at, username)
);
-- # row 3
-- ## 240
CREATE TABLE public.e2e_user_notes (
	id UUID NOT NULL,
	user_id UUID NOT NULL,
	notes VARCHAR(255) NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	FAMILY "primary" (id, user_id, notes)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_notes ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_notes VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/down/4.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 247
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	username VARCHAR(255) NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at, username)
);
-- # row 3
-- ## 324
CREATE TABLE public.e2e_user_notes (
	id UUID NOT NULL,
	user_id UUID NOT NULL,
	slug VARCHAR(64) NOT NULL,
	notes VARCHAR(255) NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	FAMILY "primary" (id, user_id, slug, notes)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_notes ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_notes VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/down/5.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 247
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	username VARCHAR(255) NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at, username)
);
-- # row 3
-- ## 324
CREATE TABLE public.e2e_user_notes (
	id UUID NOT NULL,
	user_id UUID NOT NULL,
	slug VARCHAR(64) NOT NULL,
	notes VARCHAR(255) NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	FAMILY "primary" (id, user_id, slug, notes)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_notes ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_notes VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/down/6.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 247
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	username VARCHAR(255) NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at, username)
);
-- # row 3
-- ## 324
CREATE TABLE public.e2e_user_notes (
	id UUID NOT NULL,
	user_id UUID NOT NULL,
	slug VARCHAR(64) NOT NULL,
	notes VARCHAR(255) NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	FAMILY "primary" (id, user_id, slug, notes)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_notes ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_notes VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/down/7.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 247
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	username VARCHAR(255) NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at, username)
);
-- # row 3
-- ## 324
CREATE TABLE public.e2e_user_posts (
	id UUID NOT NULL,
	user_id UUID NOT NULL,
	slug VARCHAR(64) NOT NULL,
	notes VARCHAR(255) NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	FAMILY "primary" (id, user_id, slug, notes)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_posts ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_posts VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/down/8.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 247
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	username VARCHAR(255) NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at, username)
);
-- # row 3
-- ## 352
CREATE TABLE public.e2e_user_posts (
	id UUID NOT NULL,
	content VARCHAR(255) NOT NULL DEFAULT '':::STRING,
	user_id UUID NOT NULL,
	slug VARCHAR(64) NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	FAMILY "primary" (id, content, user_id, slug)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_posts ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_posts VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/down/9.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 239
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	name VARCHAR(255) NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at, name)
);
-- # row 3
-- ## 352
CREATE TABLE public.e2e_user_posts (
	id UUID NOT NULL,
	content VARCHAR(255) NOT NULL DEFAULT '':::STRING,
	user_id UUID NOT NULL,
	slug VARCHAR(64) NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	FAMILY "primary" (id, content, user_id, slug)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_posts ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_posts VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/up/0.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 247
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	username VARCHAR(255) NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, username, created_at, updated_at)
);
-- # 2 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/up/1.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 247
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	username VARCHAR(255) NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, username, created_at, updated_at)
);
-- # row 3
-- ## 341
CREATE TABLE public.e2e_user_notes (
	id UUID NOT NULL,
	notes VARCHAR(255) NULL,
	title VARCHAR(64) NOT NULL DEFAULT '':::STRING,
	user_id UUID NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	INDEX e2e_user_notes_title_idx (title ASC),
	FAMILY "primary" (id, notes, title, user_id)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_notes ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_notes VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/up/10.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 208
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at)
);
-- # row 3
-- ## 352
CREATE TABLE public.e2e_user_posts (
	id UUID NOT NULL,
	user_id UUID NOT NULL,
	content VARCHAR(255) NOT NULL DEFAULT '':::STRING,
	slug VARCHAR(32) NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	FAMILY "primary" (id, user_id, content, slug)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_posts ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_posts VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/up/11.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 210
CREATE TABLE public.e2e_authors (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at)
);
-- # row 3
-- ## 352
CREATE TABLE public.e2e_user_posts (
	id UUID NOT NULL,
	user_id UUID NOT NULL,
	content VARCHAR(255) NOT NULL DEFAULT '':::STRING,
	slug VARCHAR(32) NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	FAMILY "primary" (id, user_id, content, slug)
);
-- # row 4
-- ## 154
ALTER TABLE public.e2e_user_posts ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_authors(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_posts VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/up/12.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 210
CREATE TABLE public.e2e_authors (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at)
);
-- # row 3
-- ## 358
CREATE TABLE public.e2e_user_posts (
	id UUID NOT NULL,
	author_id UUID NOT NULL,
	content VARCHAR(255) NOT NULL DEFAULT '':::STRING,
	slug VARCHAR(32) NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (author_id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	FAMILY "primary" (id, author_id, content, slug)
);
-- # row 4
-- ## 156
ALTER TABLE public.e2e_user_posts ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (author_id) REFERENCES public.e2e_authors(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_posts VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/up/13.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 210
CREATE TABLE public.e2e_authors (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at)
);
-- # row 3
-- ## 405
CREATE TABLE public.e2e_user_posts (
	id UUID NOT NULL,
	content VARCHAR(255) NOT NULL DEFAULT '':::STRING,
	slug VARCHAR(32) NOT NULL,
	published BOOL NOT NULL DEFAULT false,
	author_id UUID NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	INDEX e2e_user_notes_user_id_idx (author_id ASC),
	FAMILY "primary" (id, content, slug, published, author_id)
);
-- # row 4
-- ## 156
ALTER TABLE public.e2e_user_posts ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (author_id) REFERENCES public.e2e_authors(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_posts VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/up/14.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 210
CREATE TABLE public.e2e_authors (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at)
);
-- # row 3
-- ## 405
CREATE TABLE public.e2e_user_posts (
	id UUID NOT NULL,
	content VARCHAR(255) NOT NULL DEFAULT '':::STRING,
	slug VARCHAR(32) NOT NULL,
	published BOOL NOT NULL DEFAULT false,
	author_id UUID NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	INDEX e2e_user_notes_user_id_idx (author_id ASC),
	FAMILY "primary" (id, content, slug, published, author_id)
);
-- # row 4
-- ## 119
CREATE TABLE public.e2e_flow (
	id UUID NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id)
);
-- # row 5
-- ## 122
CREATE TABLE public.e2e_address (
	id UUID NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id)
);
-- # row 6
-- ## 322
CREATE TABLE public.e2e_token (
	id UUID NOT NULL,
	token VARCHAR(64) NOT NULL,
	e2e_flow_id UUID NOT NULL,
	e2e_address_id UUID NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	UNIQUE INDEX e2e_token_uq_idx (token ASC),
	INDEX e2e_token_idx (token ASC),
	FAMILY "primary" (id, token, e2e_flow_id, e2e_address_id)
);
-- # row 7
-- ## 156
ALTER TABLE public.e2e_user_posts ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (author_id) REFERENCES public.e2e_authors(id) ON DELETE CASCADE;
-- # row 8
-- ## 144
ALTER TABLE public.e2e_token ADD CONSTRAINT e2e_token_e2e_flow_id_fk FOREIGN KEY (e2e_flow_id) REFERENCES public.e2e_flow(id) ON DELETE CASCADE;
-- # row 9
-- ## 153
ALTER TABLE public.e2e_token ADD CONSTRAINT e2e_token_e2e_address_id_fk FOREIGN KEY (e2e_address_id) REFERENCES public.e2e_address(id) ON DELETE CASCADE;
-- # row 10
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 11
-- ## 85
ALTER TABLE public.e2e_user_posts VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # row 12
-- ## 74
ALTER TABLE public.e2e_token VALIDATE CONSTRAINT e2e_token_e2e_flow_id_fk;
-- # row 13
-- ## 77
ALTER TABLE public.e2e_token VALIDATE CONSTRAINT e2e_token_e2e_address_id_fk;
-- # 13 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/up/15.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 210
CREATE TABLE public.e2e_authors (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at)
);
-- # row 3
-- ## 405
CREATE TABLE public.e2e_user_posts (
	id UUID NOT NULL,
	content VARCHAR(255) NOT NULL DEFAULT '':::STRING,
	slug VARCHAR(32) NOT NULL,
	published BOOL NOT NULL DEFAULT false,
	author_id UUID NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	INDEX e2e_user_notes_user_id_idx (author_id ASC),
	FAMILY "primary" (id, content, slug, published, author_id)
);
-- # row 4
-- ## 119
CREATE TABLE public.e2e_flow (
	id UUID NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id)
);
-- # row 5
-- ## 122
CREATE TABLE public.e2e_address (
	id UUID NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id)
);
-- # row 6
-- ## 488
CREATE TABLE public.e2e_token (
	id UUID NOT NULL,
	token VARCHAR(64) NOT NULL,
	e2e_address_id UUID NOT NULL,
	expires_at TIMESTAMP NOT NULL DEFAULT '2000-01-01 00:00:00':::TIMESTAMP,
	issued_at TIMESTAMP NOT NULL DEFAULT '2000-01-01 00:00:00':::TIMESTAMP,
	e2e_flow_id UUID NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	UNIQUE INDEX e2e_token_uq_idx (token ASC),
	INDEX e2e_token_idx (token ASC),
	FAMILY "primary" (id, token, e2e_address_id, expires_at, issued_at, e2e_flow_id)
);
-- # row 7
-- ## 156
ALTER TABLE public.e2e_user_posts ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (author_id) REFERENCES public.e2e_authors(id) ON DELETE CASCADE;
-- # row 8
-- ## 153
ALTER TABLE public.e2e_token ADD CONSTRAINT e2e_token_e2e_address_id_fk FOREIGN KEY (e2e_address_id) REFERENCES public.e2e_address(id) ON DELETE CASCADE;
-- # row 9
-- ## 144
ALTER TABLE public.e2e_token ADD CONSTRAINT e2e_token_e2e_flow_id_fk FOREIGN KEY (e2e_flow_id) REFERENCES public.e2e_flow(id) ON DELETE CASCADE;
-- # row 10
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 11
-- ## 85
ALTER TABLE public.e2e_user_posts VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # row 12
-- ## 77
ALTER TABLE public.e2e_token VALIDATE CONSTRAINT e2e_token_e2e_address_id_fk;
-- # row 13
-- ## 74
ALTER TABLE public.e2e_token VALIDATE CONSTRAINT e2e_token_e2e_flow_id_fk;
-- # 13 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/up/2.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 247
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	username VARCHAR(255) NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, username, created_at, updated_at)
);
-- # row 3
-- ## 240
CREATE TABLE public.e2e_user_notes (
	id UUID NOT NULL,
	notes VARCHAR(255) NULL,
	user_id UUID NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	FAMILY "primary" (id, notes, user_id)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_notes ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_notes VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/up/3.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 247
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	username VARCHAR(255) NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, username, created_at, updated_at)
);
-- # row 3
-- ## 270
CREATE TABLE public.e2e_user_notes (
	id UUID NOT NULL,
	notes VARCHAR(255) NULL,
	user_id UUID NOT NULL,
	slug VARCHAR(64) NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	FAMILY "primary" (id, notes, user_id, slug)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_notes ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_notes VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/up/4.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 247
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	username VARCHAR(255) NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, username, created_at, updated_at)
);
-- # row 3
-- ## 270
CREATE TABLE public.e2e_user_notes (
	id UUID NOT NULL,
	notes VARCHAR(255) NULL,
	user_id UUID NOT NULL,
	slug VARCHAR(64) NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	FAMILY "primary" (id, notes, user_id, slug)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_notes ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_notes VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/up/5.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 247
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	username VARCHAR(255) NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, username, created_at, updated_at)
);
-- # row 3
-- ## 324
CREATE TABLE public.e2e_user_notes (
	id UUID NOT NULL,
	notes VARCHAR(255) NULL,
	user_id UUID NOT NULL,
	slug VARCHAR(64) NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	FAMILY "primary" (id, notes, user_id, slug)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_notes ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_notes VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/up/6.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 247
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	username VARCHAR(255) NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, username, created_at, updated_at)
);
-- # row 3
-- ## 324
CREATE TABLE public.e2e_user_posts (
	id UUID NOT NULL,
	notes VARCHAR(255) NULL,
	user_id UUID NOT NULL,
	slug VARCHAR(64) NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	FAMILY "primary" (id, notes, user_id, slug)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_posts ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_posts VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/up/7.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 247
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	username VARCHAR(255) NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, username, created_at, updated_at)
);
-- # row 3
-- ## 352
CREATE TABLE public.e2e_user_posts (
	id UUID NOT NULL,
	user_id UUID NOT NULL,
	slug VARCHAR(64) NOT NULL,
	content VARCHAR(255) NOT NULL DEFAULT '':::STRING,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	FAMILY "primary" (id, user_id, slug, content)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_posts ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_posts VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/up/8.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 239
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	name VARCHAR(255) NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, name, created_at, updated_at)
);
-- # row 3
-- ## 352
CREATE TABLE public.e2e_user_posts (
	id UUID NOT NULL,
	user_id UUID NOT NULL,
	slug VARCHAR(64) NOT NULL,
	content VARCHAR(255) NOT NULL DEFAULT '':::STRING,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	FAMILY "primary" (id, user_id, slug, content)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_posts ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_posts VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/cockroach/up/9.sql
================================================
-- # 1 column
-- # row 1
-- ## 269
CREATE TABLE public.schema_migration (
	version VARCHAR(14) NOT NULL,
	rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
	CONSTRAINT "primary" PRIMARY KEY (rowid ASC),
	UNIQUE INDEX schema_migration_version_idx (version ASC),
	FAMILY "primary" (version, rowid)
);
-- # row 2
-- ## 208
CREATE TABLE public.e2e_users (
	id UUID NOT NULL,
	created_at TIMESTAMP NOT NULL,
	updated_at TIMESTAMP NOT NULL,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	FAMILY "primary" (id, created_at, updated_at)
);
-- # row 3
-- ## 352
CREATE TABLE public.e2e_user_posts (
	id UUID NOT NULL,
	user_id UUID NOT NULL,
	slug VARCHAR(64) NOT NULL,
	content VARCHAR(255) NOT NULL DEFAULT '':::STRING,
	CONSTRAINT "primary" PRIMARY KEY (id ASC),
	INDEX e2e_user_notes_user_id_idx (user_id ASC),
	UNIQUE INDEX e2e_user_notes_slug_idx (slug ASC),
	FAMILY "primary" (id, user_id, slug, content)
);
-- # row 4
-- ## 152
ALTER TABLE public.e2e_user_posts ADD CONSTRAINT e2e_user_notes_e2e_users_id_fk FOREIGN KEY (user_id) REFERENCES public.e2e_users(id) ON DELETE CASCADE;
-- # row 5
-- ## 115
-- Validate foreign key constraints. These can fail if there was unvalidated data during the SHOW CREATE ALL TABLES
-- # row 6
-- ## 85
ALTER TABLE public.e2e_user_posts VALIDATE CONSTRAINT e2e_user_notes_e2e_users_id_fk;
-- # 6 rows


================================================
FILE: testdata/e2e/fixtures/mysql/down/0.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:22


================================================
FILE: testdata/e2e/fixtures/mysql/down/1.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_users` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  `username` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:22


================================================
FILE: testdata/e2e/fixtures/mysql/down/10.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_user_posts`
--

DROP TABLE IF EXISTS `e2e_user_posts`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_posts` (
  `id` char(36) NOT NULL,
  `user_id` char(36) NOT NULL,
  `slug` varchar(64) NOT NULL,
  `content` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  CONSTRAINT `e2e_user_posts_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_users` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:18


================================================
FILE: testdata/e2e/fixtures/mysql/down/11.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_user_posts`
--

DROP TABLE IF EXISTS `e2e_user_posts`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_posts` (
  `id` char(36) NOT NULL,
  `user_id` char(36) NOT NULL,
  `slug` varchar(32) NOT NULL,
  `content` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  CONSTRAINT `e2e_user_posts_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_users` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:18


================================================
FILE: testdata/e2e/fixtures/mysql/down/12.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_authors`
--

DROP TABLE IF EXISTS `e2e_authors`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_authors` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_user_posts`
--

DROP TABLE IF EXISTS `e2e_user_posts`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_posts` (
  `id` char(36) NOT NULL,
  `user_id` char(36) NOT NULL,
  `slug` varchar(32) NOT NULL,
  `content` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  CONSTRAINT `e2e_user_posts_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_authors` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:18


================================================
FILE: testdata/e2e/fixtures/mysql/down/13.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_authors`
--

DROP TABLE IF EXISTS `e2e_authors`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_authors` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_user_posts`
--

DROP TABLE IF EXISTS `e2e_user_posts`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_posts` (
  `id` char(36) NOT NULL,
  `author_id` char(36) NOT NULL,
  `slug` varchar(32) NOT NULL,
  `content` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`author_id`),
  CONSTRAINT `e2e_user_posts_ibfk_1` FOREIGN KEY (`author_id`) REFERENCES `e2e_authors` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:17


================================================
FILE: testdata/e2e/fixtures/mysql/down/14.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_authors`
--

DROP TABLE IF EXISTS `e2e_authors`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_authors` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_user_posts`
--

DROP TABLE IF EXISTS `e2e_user_posts`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_posts` (
  `id` char(36) NOT NULL,
  `author_id` char(36) DEFAULT NULL,
  `slug` varchar(32) NOT NULL,
  `content` varchar(255) NOT NULL DEFAULT '',
  `published` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`author_id`),
  CONSTRAINT `e2e_user_posts_ibfk_1` FOREIGN KEY (`author_id`) REFERENCES `e2e_authors` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:17


================================================
FILE: testdata/e2e/fixtures/mysql/down/15.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_address`
--

DROP TABLE IF EXISTS `e2e_address`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_address` (
  `id` char(36) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_authors`
--

DROP TABLE IF EXISTS `e2e_authors`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_authors` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_flow`
--

DROP TABLE IF EXISTS `e2e_flow`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_flow` (
  `id` char(36) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_token`
--

DROP TABLE IF EXISTS `e2e_token`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_token` (
  `id` char(36) NOT NULL,
  `token` varchar(64) NOT NULL,
  `e2e_flow_id` char(36) NOT NULL,
  `e2e_address_id` char(36) NOT NULL,
  `expires_at` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
  `issued_at` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_token_uq_idx` (`token`),
  KEY `e2e_flow_id` (`e2e_flow_id`),
  KEY `e2e_address_id` (`e2e_address_id`),
  KEY `e2e_token_idx` (`token`),
  CONSTRAINT `e2e_token_ibfk_1` FOREIGN KEY (`e2e_flow_id`) REFERENCES `e2e_flow` (`id`) ON DELETE CASCADE,
  CONSTRAINT `e2e_token_ibfk_2` FOREIGN KEY (`e2e_address_id`) REFERENCES `e2e_address` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_user_posts`
--

DROP TABLE IF EXISTS `e2e_user_posts`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_posts` (
  `id` char(36) NOT NULL,
  `author_id` char(36) DEFAULT NULL,
  `slug` varchar(32) NOT NULL,
  `content` varchar(255) NOT NULL DEFAULT '',
  `published` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`author_id`),
  CONSTRAINT `e2e_user_posts_ibfk_1` FOREIGN KEY (`author_id`) REFERENCES `e2e_authors` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:17


================================================
FILE: testdata/e2e/fixtures/mysql/down/2.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_user_notes`
--

DROP TABLE IF EXISTS `e2e_user_notes`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_notes` (
  `id` char(36) NOT NULL,
  `user_id` char(36) NOT NULL,
  `notes` varchar(255) DEFAULT NULL,
  `title` varchar(64) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  KEY `e2e_user_notes_title_idx` (`title`),
  CONSTRAINT `e2e_user_notes_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_users` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  `username` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:21


================================================
FILE: testdata/e2e/fixtures/mysql/down/3.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_user_notes`
--

DROP TABLE IF EXISTS `e2e_user_notes`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_notes` (
  `id` char(36) NOT NULL,
  `user_id` char(36) NOT NULL,
  `notes` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  CONSTRAINT `e2e_user_notes_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_users` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  `username` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:21


================================================
FILE: testdata/e2e/fixtures/mysql/down/4.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_user_notes`
--

DROP TABLE IF EXISTS `e2e_user_notes`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_notes` (
  `id` char(36) NOT NULL,
  `user_id` char(36) NOT NULL,
  `slug` varchar(64) NOT NULL,
  `notes` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  CONSTRAINT `e2e_user_notes_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_users` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  `username` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:20


================================================
FILE: testdata/e2e/fixtures/mysql/down/5.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_user_notes`
--

DROP TABLE IF EXISTS `e2e_user_notes`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_notes` (
  `id` char(36) NOT NULL,
  `user_id` char(36) NOT NULL,
  `slug` varchar(64) NOT NULL,
  `notes` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  CONSTRAINT `e2e_user_notes_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_users` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  `username` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:20


================================================
FILE: testdata/e2e/fixtures/mysql/down/6.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_user_notes`
--

DROP TABLE IF EXISTS `e2e_user_notes`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_notes` (
  `id` char(36) NOT NULL,
  `user_id` char(36) NOT NULL,
  `slug` varchar(64) NOT NULL,
  `notes` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  CONSTRAINT `e2e_user_notes_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_users` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  `username` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:20


================================================
FILE: testdata/e2e/fixtures/mysql/down/7.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_user_posts`
--

DROP TABLE IF EXISTS `e2e_user_posts`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_posts` (
  `id` char(36) NOT NULL,
  `user_id` char(36) NOT NULL,
  `slug` varchar(64) NOT NULL,
  `notes` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  CONSTRAINT `e2e_user_posts_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_users` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  `username` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:19


================================================
FILE: testdata/e2e/fixtures/mysql/down/8.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_user_posts`
--

DROP TABLE IF EXISTS `e2e_user_posts`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_posts` (
  `id` char(36) NOT NULL,
  `user_id` char(36) NOT NULL,
  `slug` varchar(64) NOT NULL,
  `content` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  CONSTRAINT `e2e_user_posts_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_users` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  `username` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:19


================================================
FILE: testdata/e2e/fixtures/mysql/down/9.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_user_posts`
--

DROP TABLE IF EXISTS `e2e_user_posts`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_posts` (
  `id` char(36) NOT NULL,
  `user_id` char(36) NOT NULL,
  `slug` varchar(64) NOT NULL,
  `content` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  CONSTRAINT `e2e_user_posts_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_users` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:19


================================================
FILE: testdata/e2e/fixtures/mysql/up/0.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_users` (
  `id` char(36) NOT NULL,
  `username` varchar(255) DEFAULT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:11


================================================
FILE: testdata/e2e/fixtures/mysql/up/1.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_user_notes`
--

DROP TABLE IF EXISTS `e2e_user_notes`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_notes` (
  `id` char(36) NOT NULL,
  `notes` varchar(255) DEFAULT NULL,
  `title` varchar(64) NOT NULL DEFAULT '',
  `user_id` char(36) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  KEY `e2e_user_notes_title_idx` (`title`),
  CONSTRAINT `e2e_user_notes_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_users` (
  `id` char(36) NOT NULL,
  `username` varchar(255) DEFAULT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:11


================================================
FILE: testdata/e2e/fixtures/mysql/up/10.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_user_posts`
--

DROP TABLE IF EXISTS `e2e_user_posts`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_posts` (
  `id` char(36) NOT NULL,
  `user_id` char(36) NOT NULL,
  `slug` varchar(32) NOT NULL,
  `content` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  CONSTRAINT `e2e_user_posts_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_users` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:14


================================================
FILE: testdata/e2e/fixtures/mysql/up/11.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_authors`
--

DROP TABLE IF EXISTS `e2e_authors`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_authors` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_user_posts`
--

DROP TABLE IF EXISTS `e2e_user_posts`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_posts` (
  `id` char(36) NOT NULL,
  `user_id` char(36) NOT NULL,
  `slug` varchar(32) NOT NULL,
  `content` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  CONSTRAINT `e2e_user_posts_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_authors` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:14


================================================
FILE: testdata/e2e/fixtures/mysql/up/12.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_authors`
--

DROP TABLE IF EXISTS `e2e_authors`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_authors` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_user_posts`
--

DROP TABLE IF EXISTS `e2e_user_posts`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_posts` (
  `id` char(36) NOT NULL,
  `author_id` char(36) NOT NULL,
  `slug` varchar(32) NOT NULL,
  `content` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`author_id`),
  CONSTRAINT `e2e_user_posts_ibfk_1` FOREIGN KEY (`author_id`) REFERENCES `e2e_authors` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:15


================================================
FILE: testdata/e2e/fixtures/mysql/up/13.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_authors`
--

DROP TABLE IF EXISTS `e2e_authors`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_authors` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_user_posts`
--

DROP TABLE IF EXISTS `e2e_user_posts`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_posts` (
  `id` char(36) NOT NULL,
  `author_id` char(36) DEFAULT NULL,
  `slug` varchar(32) NOT NULL,
  `content` varchar(255) NOT NULL DEFAULT '',
  `published` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`author_id`),
  CONSTRAINT `e2e_user_posts_ibfk_1` FOREIGN KEY (`author_id`) REFERENCES `e2e_authors` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:15


================================================
FILE: testdata/e2e/fixtures/mysql/up/14.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_address`
--

DROP TABLE IF EXISTS `e2e_address`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_address` (
  `id` char(36) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_authors`
--

DROP TABLE IF EXISTS `e2e_authors`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_authors` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_flow`
--

DROP TABLE IF EXISTS `e2e_flow`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_flow` (
  `id` char(36) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_token`
--

DROP TABLE IF EXISTS `e2e_token`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_token` (
  `id` char(36) NOT NULL,
  `token` varchar(64) NOT NULL,
  `e2e_flow_id` char(36) NOT NULL,
  `e2e_address_id` char(36) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_token_uq_idx` (`token`),
  KEY `e2e_flow_id` (`e2e_flow_id`),
  KEY `e2e_address_id` (`e2e_address_id`),
  KEY `e2e_token_idx` (`token`),
  CONSTRAINT `e2e_token_ibfk_1` FOREIGN KEY (`e2e_flow_id`) REFERENCES `e2e_flow` (`id`) ON DELETE CASCADE,
  CONSTRAINT `e2e_token_ibfk_2` FOREIGN KEY (`e2e_address_id`) REFERENCES `e2e_address` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_user_posts`
--

DROP TABLE IF EXISTS `e2e_user_posts`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_posts` (
  `id` char(36) NOT NULL,
  `author_id` char(36) DEFAULT NULL,
  `slug` varchar(32) NOT NULL,
  `content` varchar(255) NOT NULL DEFAULT '',
  `published` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`author_id`),
  CONSTRAINT `e2e_user_posts_ibfk_1` FOREIGN KEY (`author_id`) REFERENCES `e2e_authors` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:16


================================================
FILE: testdata/e2e/fixtures/mysql/up/15.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_address`
--

DROP TABLE IF EXISTS `e2e_address`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_address` (
  `id` char(36) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_authors`
--

DROP TABLE IF EXISTS `e2e_authors`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_authors` (
  `id` char(36) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_flow`
--

DROP TABLE IF EXISTS `e2e_flow`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_flow` (
  `id` char(36) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_token`
--

DROP TABLE IF EXISTS `e2e_token`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_token` (
  `id` char(36) NOT NULL,
  `token` varchar(64) NOT NULL,
  `e2e_flow_id` char(36) DEFAULT NULL,
  `e2e_address_id` char(36) NOT NULL,
  `expires_at` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
  `issued_at` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_token_uq_idx` (`token`),
  KEY `e2e_flow_id` (`e2e_flow_id`),
  KEY `e2e_address_id` (`e2e_address_id`),
  KEY `e2e_token_idx` (`token`),
  CONSTRAINT `e2e_token_ibfk_1` FOREIGN KEY (`e2e_flow_id`) REFERENCES `e2e_flow` (`id`) ON DELETE CASCADE,
  CONSTRAINT `e2e_token_ibfk_2` FOREIGN KEY (`e2e_address_id`) REFERENCES `e2e_address` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_user_posts`
--

DROP TABLE IF EXISTS `e2e_user_posts`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_posts` (
  `id` char(36) NOT NULL,
  `author_id` char(36) DEFAULT NULL,
  `slug` varchar(32) NOT NULL,
  `content` varchar(255) NOT NULL DEFAULT '',
  `published` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`author_id`),
  CONSTRAINT `e2e_user_posts_ibfk_1` FOREIGN KEY (`author_id`) REFERENCES `e2e_authors` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:16


================================================
FILE: testdata/e2e/fixtures/mysql/up/2.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_user_notes`
--

DROP TABLE IF EXISTS `e2e_user_notes`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_notes` (
  `id` char(36) NOT NULL,
  `notes` varchar(255) DEFAULT NULL,
  `user_id` char(36) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  CONSTRAINT `e2e_user_notes_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_users` (
  `id` char(36) NOT NULL,
  `username` varchar(255) DEFAULT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:11


================================================
FILE: testdata/e2e/fixtures/mysql/up/3.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_user_notes`
--

DROP TABLE IF EXISTS `e2e_user_notes`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_notes` (
  `id` char(36) NOT NULL,
  `notes` varchar(255) DEFAULT NULL,
  `user_id` char(36) NOT NULL,
  `slug` varchar(64) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  CONSTRAINT `e2e_user_notes_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_users` (
  `id` char(36) NOT NULL,
  `username` varchar(255) DEFAULT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:12


================================================
FILE: testdata/e2e/fixtures/mysql/up/4.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_user_notes`
--

DROP TABLE IF EXISTS `e2e_user_notes`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_notes` (
  `id` char(36) NOT NULL,
  `notes` varchar(255) DEFAULT NULL,
  `user_id` char(36) NOT NULL,
  `slug` varchar(64) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  CONSTRAINT `e2e_user_notes_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_users` (
  `id` char(36) NOT NULL,
  `username` varchar(255) DEFAULT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:12


================================================
FILE: testdata/e2e/fixtures/mysql/up/5.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_user_notes`
--

DROP TABLE IF EXISTS `e2e_user_notes`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_notes` (
  `id` char(36) NOT NULL,
  `notes` varchar(255) DEFAULT NULL,
  `user_id` char(36) NOT NULL,
  `slug` varchar(64) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  CONSTRAINT `e2e_user_notes_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_users` (
  `id` char(36) NOT NULL,
  `username` varchar(255) DEFAULT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:12


================================================
FILE: testdata/e2e/fixtures/mysql/up/6.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_user_posts`
--

DROP TABLE IF EXISTS `e2e_user_posts`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_posts` (
  `id` char(36) NOT NULL,
  `notes` varchar(255) DEFAULT NULL,
  `user_id` char(36) NOT NULL,
  `slug` varchar(64) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  CONSTRAINT `e2e_user_posts_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_users` (
  `id` char(36) NOT NULL,
  `username` varchar(255) DEFAULT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `schema_migration`
--

DROP TABLE IF EXISTS `schema_migration`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `schema_migration` (
  `version` varchar(14) NOT NULL,
  UNIQUE KEY `schema_migration_version_idx` (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-09-03 11:40:12


================================================
FILE: testdata/e2e/fixtures/mysql/up/7.sql
================================================
-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)
--
-- Host: 127.0.0.1    Database: pop_test
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `e2e_user_posts`
--

DROP TABLE IF EXISTS `e2e_user_posts`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `e2e_user_posts` (
  `id` char(36) NOT NULL,
  `user_id` char(36) NOT NULL,
  `slug` varchar(64) NOT NULL,
  `content` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `e2e_user_notes_slug_idx` (`slug`),
  KEY `e2e_user_notes_user_id_idx` (`user_id`),
  CONSTRAINT `e2e_user_posts_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `e2e_users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `e2e_users`
--

DROP TABLE IF EXISTS `e2e_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_s
Download .txt
gitextract_9i9t9223/

├── .github/
│   ├── CODEOWNERS
│   ├── FUNDING.yml
│   └── workflows/
│       ├── standard-stale.yml
│       └── tests.yml
├── .gitignore
├── LICENSE
├── Makefile
├── README.md
├── SHOULDERS.md
├── bubbler.go
├── bubbler_test.go
├── columns.go
├── columns_test.go
├── database.yml
├── docker-compose.yml
├── fizz.go
├── foreign_keys.go
├── go.mod
├── go.sum
├── index.go
├── raw_sql.go
├── tables.go
├── tables_private_test.go
├── tables_test.go
├── test.sh
├── testdata/
│   ├── e2e/
│   │   ├── cockroach_test.go
│   │   ├── fixtures/
│   │   │   ├── cockroach/
│   │   │   │   ├── down/
│   │   │   │   │   ├── 0.sql
│   │   │   │   │   ├── 1.sql
│   │   │   │   │   ├── 10.sql
│   │   │   │   │   ├── 11.sql
│   │   │   │   │   ├── 12.sql
│   │   │   │   │   ├── 13.sql
│   │   │   │   │   ├── 14.sql
│   │   │   │   │   ├── 15.sql
│   │   │   │   │   ├── 2.sql
│   │   │   │   │   ├── 3.sql
│   │   │   │   │   ├── 4.sql
│   │   │   │   │   ├── 5.sql
│   │   │   │   │   ├── 6.sql
│   │   │   │   │   ├── 7.sql
│   │   │   │   │   ├── 8.sql
│   │   │   │   │   └── 9.sql
│   │   │   │   └── up/
│   │   │   │       ├── 0.sql
│   │   │   │       ├── 1.sql
│   │   │   │       ├── 10.sql
│   │   │   │       ├── 11.sql
│   │   │   │       ├── 12.sql
│   │   │   │       ├── 13.sql
│   │   │   │       ├── 14.sql
│   │   │   │       ├── 15.sql
│   │   │   │       ├── 2.sql
│   │   │   │       ├── 3.sql
│   │   │   │       ├── 4.sql
│   │   │   │       ├── 5.sql
│   │   │   │       ├── 6.sql
│   │   │   │       ├── 7.sql
│   │   │   │       ├── 8.sql
│   │   │   │       └── 9.sql
│   │   │   ├── mysql/
│   │   │   │   ├── down/
│   │   │   │   │   ├── 0.sql
│   │   │   │   │   ├── 1.sql
│   │   │   │   │   ├── 10.sql
│   │   │   │   │   ├── 11.sql
│   │   │   │   │   ├── 12.sql
│   │   │   │   │   ├── 13.sql
│   │   │   │   │   ├── 14.sql
│   │   │   │   │   ├── 15.sql
│   │   │   │   │   ├── 2.sql
│   │   │   │   │   ├── 3.sql
│   │   │   │   │   ├── 4.sql
│   │   │   │   │   ├── 5.sql
│   │   │   │   │   ├── 6.sql
│   │   │   │   │   ├── 7.sql
│   │   │   │   │   ├── 8.sql
│   │   │   │   │   └── 9.sql
│   │   │   │   └── up/
│   │   │   │       ├── 0.sql
│   │   │   │       ├── 1.sql
│   │   │   │       ├── 10.sql
│   │   │   │       ├── 11.sql
│   │   │   │       ├── 12.sql
│   │   │   │       ├── 13.sql
│   │   │   │       ├── 14.sql
│   │   │   │       ├── 15.sql
│   │   │   │       ├── 2.sql
│   │   │   │       ├── 3.sql
│   │   │   │       ├── 4.sql
│   │   │   │       ├── 5.sql
│   │   │   │       ├── 6.sql
│   │   │   │       ├── 7.sql
│   │   │   │       ├── 8.sql
│   │   │   │       └── 9.sql
│   │   │   ├── postgres/
│   │   │   │   ├── down/
│   │   │   │   │   ├── 0.sql
│   │   │   │   │   ├── 1.sql
│   │   │   │   │   ├── 10.sql
│   │   │   │   │   ├── 11.sql
│   │   │   │   │   ├── 12.sql
│   │   │   │   │   ├── 13.sql
│   │   │   │   │   ├── 14.sql
│   │   │   │   │   ├── 15.sql
│   │   │   │   │   ├── 2.sql
│   │   │   │   │   ├── 3.sql
│   │   │   │   │   ├── 4.sql
│   │   │   │   │   ├── 5.sql
│   │   │   │   │   ├── 6.sql
│   │   │   │   │   ├── 7.sql
│   │   │   │   │   ├── 8.sql
│   │   │   │   │   └── 9.sql
│   │   │   │   └── up/
│   │   │   │       ├── 0.sql
│   │   │   │       ├── 1.sql
│   │   │   │       ├── 10.sql
│   │   │   │       ├── 11.sql
│   │   │   │       ├── 12.sql
│   │   │   │       ├── 13.sql
│   │   │   │       ├── 14.sql
│   │   │   │       ├── 15.sql
│   │   │   │       ├── 2.sql
│   │   │   │       ├── 3.sql
│   │   │   │       ├── 4.sql
│   │   │   │       ├── 5.sql
│   │   │   │       ├── 6.sql
│   │   │   │       ├── 7.sql
│   │   │   │       ├── 8.sql
│   │   │   │       └── 9.sql
│   │   │   └── sqlite3/
│   │   │       ├── down/
│   │   │       │   ├── 0.sql
│   │   │       │   ├── 1.sql
│   │   │       │   ├── 10.sql
│   │   │       │   ├── 11.sql
│   │   │       │   ├── 12.sql
│   │   │       │   ├── 13.sql
│   │   │       │   ├── 14.sql
│   │   │       │   ├── 15.sql
│   │   │       │   ├── 2.sql
│   │   │       │   ├── 3.sql
│   │   │       │   ├── 4.sql
│   │   │       │   ├── 5.sql
│   │   │       │   ├── 6.sql
│   │   │       │   ├── 7.sql
│   │   │       │   ├── 8.sql
│   │   │       │   └── 9.sql
│   │   │       └── up/
│   │   │           ├── 0.sql
│   │   │           ├── 1.sql
│   │   │           ├── 10.sql
│   │   │           ├── 11.sql
│   │   │           ├── 12.sql
│   │   │           ├── 13.sql
│   │   │           ├── 14.sql
│   │   │           ├── 15.sql
│   │   │           ├── 2.sql
│   │   │           ├── 3.sql
│   │   │           ├── 4.sql
│   │   │           ├── 5.sql
│   │   │           ├── 6.sql
│   │   │           ├── 7.sql
│   │   │           ├── 8.sql
│   │   │           └── 9.sql
│   │   ├── go.mod
│   │   ├── go.sum
│   │   ├── integration_test.go
│   │   ├── migrations/
│   │   │   ├── 20191100000001_users.down.fizz
│   │   │   ├── 20191100000001_users.up.fizz
│   │   │   ├── 20191100000002_user_notes.down.fizz
│   │   │   ├── 20191100000002_user_notes.up.fizz
│   │   │   ├── 20191100000003_user_notes_drop_title.down.fizz
│   │   │   ├── 20191100000003_user_notes_drop_title.up.fizz
│   │   │   ├── 20191100000004_user_notes_add_slug.down.fizz
│   │   │   ├── 20191100000004_user_notes_add_slug.up.fizz
│   │   │   ├── 20191100000005_user_notes_add_slug.down.fizz
│   │   │   ├── 20191100000005_user_notes_add_slug.up.fizz
│   │   │   ├── 20191100000006_user_notes_add_slug.down.fizz
│   │   │   ├── 20191100000006_user_notes_add_slug.up.fizz
│   │   │   ├── 20191100000007_user_notes_rename.down.fizz
│   │   │   ├── 20191100000007_user_notes_rename.up.fizz
│   │   │   ├── 20191100000008_user_notes_rename_notes.down.fizz
│   │   │   ├── 20191100000008_user_notes_rename_notes.up.fizz
│   │   │   ├── 20191100000009_users_username.down.fizz
│   │   │   ├── 20191100000009_users_username.up.fizz
│   │   │   ├── 20191100000010_users_drop_name.down.fizz
│   │   │   ├── 20191100000010_users_drop_name.up.fizz
│   │   │   ├── 20191100000011_user_posts_change_column.down.fizz
│   │   │   ├── 20191100000011_user_posts_change_column.up.fizz
│   │   │   ├── 20191100000012_rename_user.down.fizz
│   │   │   ├── 20191100000012_rename_user.up.fizz
│   │   │   ├── 20191100000013_rename_user_notes_user.down.fizz
│   │   │   ├── 20191100000013_rename_user_notes_user.up.fizz
│   │   │   ├── 20191100000014_rename_user_add_published.down.fizz
│   │   │   ├── 20191100000014_rename_user_add_published.up.fizz
│   │   │   ├── 20191100000015_auto_fk.down.fizz
│   │   │   ├── 20191100000015_auto_fk.up.fizz
│   │   │   ├── 20191100000016_rename_auto_fk.down.fizz
│   │   │   └── 20191100000016_rename_auto_fk.up.fizz
│   │   ├── migrator_test.go
│   │   ├── mysql_test.go
│   │   ├── postgres_test.go
│   │   └── sqlite3_test.go
│   └── migrations/
│       ├── .gitignore
│       ├── 20160808213308_setup_tests.down.fizz
│       ├── 20160808213308_setup_tests.up.fizz
│       ├── 20160808213310_setup_tests2.down.fizz
│       ├── 20160808213310_setup_tests2.up.fizz
│       └── multiple/
│           ├── 20180413210602_create_users.mysql.up.sql
│           ├── 20180413210602_create_users.postgres.up.sql
│           ├── 20180413210602_create_users.sqlite3.up.sql
│           └── 20180413210602_create_users.up.sql
├── translator.go
├── translators/
│   ├── cockroach.go
│   ├── cockroach_meta.go
│   ├── cockroach_test.go
│   ├── mariadb.go
│   ├── mariadb_test.go
│   ├── mssqlserver.go
│   ├── mssqlserver_test.go
│   ├── mysql.go
│   ├── mysql_meta.go
│   ├── mysql_test.go
│   ├── postgres.go
│   ├── postgres_test.go
│   ├── schema.go
│   ├── schema_test.go
│   ├── sqlite.go
│   ├── sqlite_meta.go
│   ├── sqlite_meta_test.go
│   ├── sqlite_test.go
│   └── translators_test.go
└── version.go
Download .txt
SYMBOL INDEX (945 symbols across 166 files)

FILE: bubbler.go
  type BubbleType (line 10) | type BubbleType
  type Bubbler (line 12) | type Bubbler struct
    method String (line 24) | func (b *Bubbler) String() string {
    method Bubble (line 28) | func (b *Bubbler) Bubble(s string) (string, error) {
  function NewBubbler (line 17) | func NewBubbler(t Translator) *Bubbler {

FILE: bubbler_test.go
  function Test_Exec (line 11) | func Test_Exec(t *testing.T) {
  function Test_ExecQuoted (line 22) | func Test_ExecQuoted(t *testing.T) {

FILE: columns.go
  type Column (line 29) | type Column struct
    method String (line 36) | func (c Column) String() string {
  method ChangeColumn (line 59) | func (f fizzer) ChangeColumn(table, name, ctype string, options Options)...
  method AddColumn (line 69) | func (f fizzer) AddColumn(table, name, ctype string, options Options) er...
  method DropColumn (line 79) | func (f fizzer) DropColumn(table, name string) error {
  method RenameColumn (line 89) | func (f fizzer) RenameColumn(table, old, new string) error {

FILE: columns_test.go
  function Test_Column_Stringer (line 10) | func Test_Column_Stringer(t *testing.T) {

FILE: fizz.go
  type Options (line 16) | type Options
  type fizzer (line 18) | type fizzer struct
    method add (line 22) | func (f fizzer) add(s string, err error) error {
    method Exec (line 30) | func (f fizzer) Exec(out io.Writer) func(string) error {
  function AFile (line 49) | func AFile(f io.Reader, t Translator) (string, error) {
  function AString (line 58) | func AString(s string, t Translator) (string, error) {

FILE: foreign_keys.go
  type ForeignKeyRef (line 10) | type ForeignKeyRef struct
  type ForeignKey (line 15) | type ForeignKey struct
    method String (line 22) | func (f ForeignKey) String() string {
  method AddForeignKey (line 40) | func (f fizzer) AddForeignKey(table string, column string, refs interfac...
  method DropForeignKey (line 67) | func (f fizzer) DropForeignKey(table string, fk string, options Options)...
  function parseForeignKeyRef (line 79) | func parseForeignKeyRef(refs interface{}) (ForeignKeyRef, error) {

FILE: index.go
  type Index (line 11) | type Index struct
    method String (line 18) | func (i Index) String() string {
  method AddIndex (line 47) | func (f fizzer) AddIndex(table string, columns interface{}, options Opti...
  method DropIndex (line 55) | func (f fizzer) DropIndex(table, name string) error {
  method RenameIndex (line 64) | func (f fizzer) RenameIndex(table, old, new string) error {

FILE: raw_sql.go
  method RawSQL (line 7) | func (f fizzer) RawSQL(sql string) error {
  method RawSql (line 15) | func (f fizzer) RawSql(sql string) error {

FILE: tables.go
  type Table (line 15) | type Table struct
    method String (line 26) | func (t Table) String() string {
    method Fizz (line 31) | func (t Table) Fizz() string {
    method UnFizz (line 95) | func (t Table) UnFizz() string {
    method DisableTimestamps (line 99) | func (t *Table) DisableTimestamps() {
    method Column (line 104) | func (t *Table) Column(name string, colType string, options Options) e...
    method ForeignKey (line 140) | func (t *Table) ForeignKey(column string, refs interface{}, options Op...
    method Index (line 166) | func (t *Table) Index(columns interface{}, options Options) error {
    method Timestamp (line 210) | func (t *Table) Timestamp(name string) error {
    method Timestamps (line 215) | func (t *Table) Timestamps() error {
    method PrimaryKey (line 224) | func (t *Table) PrimaryKey(pk ...string) error {
    method PrimaryKeys (line 248) | func (t *Table) PrimaryKeys() []string {
    method ColumnNames (line 253) | func (t *Table) ColumnNames() []string {
    method HasColumns (line 262) | func (t *Table) HasColumns(args ...string) bool {
  function NewTable (line 280) | func NewTable(name string, opts map[string]interface{}) Table {
  method CreateTable (line 299) | func (f fizzer) CreateTable(name string, opts map[string]interface{}, he...
  method DropTable (line 325) | func (f fizzer) DropTable(name string) error {
  method RenameTable (line 329) | func (f fizzer) RenameTable(old, new string) error {

FILE: tables_private_test.go
  function Test_Table_HasColumnNoCache (line 9) | func Test_Table_HasColumnNoCache(t *testing.T) {

FILE: tables_test.go
  function Test_Table_Stringer (line 10) | func Test_Table_Stringer(t *testing.T) {
  function Test_Table_StringerOpts (line 47) | func Test_Table_StringerOpts(t *testing.T) {
  function Test_Table_StringerAutoDisableTimestamps (line 79) | func Test_Table_StringerAutoDisableTimestamps(t *testing.T) {
  function Test_Table_StringerIndex (line 132) | func Test_Table_StringerIndex(t *testing.T) {
  function Test_Table_StringerForeignKey (line 170) | func Test_Table_StringerForeignKey(t *testing.T) {
  function Test_Table_UnFizz (line 219) | func Test_Table_UnFizz(t *testing.T) {
  function Test_Table_HasColumn (line 225) | func Test_Table_HasColumn(t *testing.T) {
  function Test_Table_ColumnNames (line 234) | func Test_Table_ColumnNames(t *testing.T) {
  function Test_Table_DuplicateColumn (line 242) | func Test_Table_DuplicateColumn(t *testing.T) {
  function Test_Table_AddEmptyIndex (line 252) | func Test_Table_AddEmptyIndex(t *testing.T) {
  function Test_Table_AddPrimaryKey (line 261) | func Test_Table_AddPrimaryKey(t *testing.T) {
  function Test_Table_AddPrimaryKey_Errors (line 300) | func Test_Table_AddPrimaryKey_Errors(t *testing.T) {

FILE: testdata/e2e/cockroach_test.go
  type CockroachSuite (line 8) | type CockroachSuite struct
    method Test_Cockroach_MigrationSteps (line 12) | func (s *CockroachSuite) Test_Cockroach_MigrationSteps() {

FILE: testdata/e2e/fixtures/cockroach/down/0.sql
  type public (line 4) | CREATE TABLE public.schema_migration (

FILE: testdata/e2e/fixtures/cockroach/down/1.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (

FILE: testdata/e2e/fixtures/cockroach/down/10.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 22) | CREATE TABLE public.e2e_user_posts (

FILE: testdata/e2e/fixtures/cockroach/down/11.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 22) | CREATE TABLE public.e2e_user_posts (

FILE: testdata/e2e/fixtures/cockroach/down/12.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_authors (
  type public (line 22) | CREATE TABLE public.e2e_user_posts (

FILE: testdata/e2e/fixtures/cockroach/down/13.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_authors (
  type public (line 22) | CREATE TABLE public.e2e_user_posts (

FILE: testdata/e2e/fixtures/cockroach/down/14.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_authors (
  type public (line 22) | CREATE TABLE public.e2e_user_posts (

FILE: testdata/e2e/fixtures/cockroach/down/15.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_authors (
  type public (line 22) | CREATE TABLE public.e2e_user_posts (
  type public (line 35) | CREATE TABLE public.e2e_flow (
  type public (line 42) | CREATE TABLE public.e2e_address (
  type public (line 49) | CREATE TABLE public.e2e_token (

FILE: testdata/e2e/fixtures/cockroach/down/2.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 23) | CREATE TABLE public.e2e_user_notes (

FILE: testdata/e2e/fixtures/cockroach/down/3.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 23) | CREATE TABLE public.e2e_user_notes (

FILE: testdata/e2e/fixtures/cockroach/down/4.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 23) | CREATE TABLE public.e2e_user_notes (

FILE: testdata/e2e/fixtures/cockroach/down/5.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 23) | CREATE TABLE public.e2e_user_notes (

FILE: testdata/e2e/fixtures/cockroach/down/6.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 23) | CREATE TABLE public.e2e_user_notes (

FILE: testdata/e2e/fixtures/cockroach/down/7.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 23) | CREATE TABLE public.e2e_user_posts (

FILE: testdata/e2e/fixtures/cockroach/down/8.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 23) | CREATE TABLE public.e2e_user_posts (

FILE: testdata/e2e/fixtures/cockroach/down/9.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 23) | CREATE TABLE public.e2e_user_posts (

FILE: testdata/e2e/fixtures/cockroach/up/0.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (

FILE: testdata/e2e/fixtures/cockroach/up/1.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 23) | CREATE TABLE public.e2e_user_notes (

FILE: testdata/e2e/fixtures/cockroach/up/10.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 22) | CREATE TABLE public.e2e_user_posts (

FILE: testdata/e2e/fixtures/cockroach/up/11.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_authors (
  type public (line 22) | CREATE TABLE public.e2e_user_posts (

FILE: testdata/e2e/fixtures/cockroach/up/12.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_authors (
  type public (line 22) | CREATE TABLE public.e2e_user_posts (

FILE: testdata/e2e/fixtures/cockroach/up/13.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_authors (
  type public (line 22) | CREATE TABLE public.e2e_user_posts (

FILE: testdata/e2e/fixtures/cockroach/up/14.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_authors (
  type public (line 22) | CREATE TABLE public.e2e_user_posts (
  type public (line 35) | CREATE TABLE public.e2e_flow (
  type public (line 42) | CREATE TABLE public.e2e_address (
  type public (line 49) | CREATE TABLE public.e2e_token (

FILE: testdata/e2e/fixtures/cockroach/up/15.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_authors (
  type public (line 22) | CREATE TABLE public.e2e_user_posts (
  type public (line 35) | CREATE TABLE public.e2e_flow (
  type public (line 42) | CREATE TABLE public.e2e_address (
  type public (line 49) | CREATE TABLE public.e2e_token (

FILE: testdata/e2e/fixtures/cockroach/up/2.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 23) | CREATE TABLE public.e2e_user_notes (

FILE: testdata/e2e/fixtures/cockroach/up/3.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 23) | CREATE TABLE public.e2e_user_notes (

FILE: testdata/e2e/fixtures/cockroach/up/4.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 23) | CREATE TABLE public.e2e_user_notes (

FILE: testdata/e2e/fixtures/cockroach/up/5.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 23) | CREATE TABLE public.e2e_user_notes (

FILE: testdata/e2e/fixtures/cockroach/up/6.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 23) | CREATE TABLE public.e2e_user_posts (

FILE: testdata/e2e/fixtures/cockroach/up/7.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 23) | CREATE TABLE public.e2e_user_posts (

FILE: testdata/e2e/fixtures/cockroach/up/8.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 23) | CREATE TABLE public.e2e_user_posts (

FILE: testdata/e2e/fixtures/cockroach/up/9.sql
  type public (line 4) | CREATE TABLE public.schema_migration (
  type public (line 13) | CREATE TABLE public.e2e_users (
  type public (line 22) | CREATE TABLE public.e2e_user_posts (

FILE: testdata/e2e/fixtures/mysql/down/0.sql
  type `schema_migration` (line 25) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/down/1.sql
  type `e2e_users` (line 25) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 41) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/down/10.sql
  type `e2e_user_posts` (line 25) | CREATE TABLE `e2e_user_posts` (
  type `e2e_users` (line 44) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 59) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/down/11.sql
  type `e2e_user_posts` (line 25) | CREATE TABLE `e2e_user_posts` (
  type `e2e_users` (line 44) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 59) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/down/12.sql
  type `e2e_authors` (line 25) | CREATE TABLE `e2e_authors` (
  type `e2e_user_posts` (line 40) | CREATE TABLE `e2e_user_posts` (
  type `schema_migration` (line 59) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/down/13.sql
  type `e2e_authors` (line 25) | CREATE TABLE `e2e_authors` (
  type `e2e_user_posts` (line 40) | CREATE TABLE `e2e_user_posts` (
  type `schema_migration` (line 59) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/down/14.sql
  type `e2e_authors` (line 25) | CREATE TABLE `e2e_authors` (
  type `e2e_user_posts` (line 40) | CREATE TABLE `e2e_user_posts` (
  type `schema_migration` (line 60) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/down/15.sql
  type `e2e_address` (line 25) | CREATE TABLE `e2e_address` (
  type `e2e_authors` (line 38) | CREATE TABLE `e2e_authors` (
  type `e2e_flow` (line 53) | CREATE TABLE `e2e_flow` (
  type `e2e_token` (line 66) | CREATE TABLE `e2e_token` (
  type `e2e_user_posts` (line 90) | CREATE TABLE `e2e_user_posts` (
  type `schema_migration` (line 110) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/down/2.sql
  type `e2e_user_notes` (line 25) | CREATE TABLE `e2e_user_notes` (
  type `e2e_users` (line 44) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 60) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/down/3.sql
  type `e2e_user_notes` (line 25) | CREATE TABLE `e2e_user_notes` (
  type `e2e_users` (line 42) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 58) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/down/4.sql
  type `e2e_user_notes` (line 25) | CREATE TABLE `e2e_user_notes` (
  type `e2e_users` (line 44) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 60) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/down/5.sql
  type `e2e_user_notes` (line 25) | CREATE TABLE `e2e_user_notes` (
  type `e2e_users` (line 44) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 60) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/down/6.sql
  type `e2e_user_notes` (line 25) | CREATE TABLE `e2e_user_notes` (
  type `e2e_users` (line 44) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 60) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/down/7.sql
  type `e2e_user_posts` (line 25) | CREATE TABLE `e2e_user_posts` (
  type `e2e_users` (line 44) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 60) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/down/8.sql
  type `e2e_user_posts` (line 25) | CREATE TABLE `e2e_user_posts` (
  type `e2e_users` (line 44) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 60) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/down/9.sql
  type `e2e_user_posts` (line 25) | CREATE TABLE `e2e_user_posts` (
  type `e2e_users` (line 44) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 60) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/up/0.sql
  type `e2e_users` (line 25) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 41) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/up/1.sql
  type `e2e_user_notes` (line 25) | CREATE TABLE `e2e_user_notes` (
  type `e2e_users` (line 44) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 60) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/up/10.sql
  type `e2e_user_posts` (line 25) | CREATE TABLE `e2e_user_posts` (
  type `e2e_users` (line 44) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 59) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/up/11.sql
  type `e2e_authors` (line 25) | CREATE TABLE `e2e_authors` (
  type `e2e_user_posts` (line 40) | CREATE TABLE `e2e_user_posts` (
  type `schema_migration` (line 59) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/up/12.sql
  type `e2e_authors` (line 25) | CREATE TABLE `e2e_authors` (
  type `e2e_user_posts` (line 40) | CREATE TABLE `e2e_user_posts` (
  type `schema_migration` (line 59) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/up/13.sql
  type `e2e_authors` (line 25) | CREATE TABLE `e2e_authors` (
  type `e2e_user_posts` (line 40) | CREATE TABLE `e2e_user_posts` (
  type `schema_migration` (line 60) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/up/14.sql
  type `e2e_address` (line 25) | CREATE TABLE `e2e_address` (
  type `e2e_authors` (line 38) | CREATE TABLE `e2e_authors` (
  type `e2e_flow` (line 53) | CREATE TABLE `e2e_flow` (
  type `e2e_token` (line 66) | CREATE TABLE `e2e_token` (
  type `e2e_user_posts` (line 88) | CREATE TABLE `e2e_user_posts` (
  type `schema_migration` (line 108) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/up/15.sql
  type `e2e_address` (line 25) | CREATE TABLE `e2e_address` (
  type `e2e_authors` (line 38) | CREATE TABLE `e2e_authors` (
  type `e2e_flow` (line 53) | CREATE TABLE `e2e_flow` (
  type `e2e_token` (line 66) | CREATE TABLE `e2e_token` (
  type `e2e_user_posts` (line 90) | CREATE TABLE `e2e_user_posts` (
  type `schema_migration` (line 110) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/up/2.sql
  type `e2e_user_notes` (line 25) | CREATE TABLE `e2e_user_notes` (
  type `e2e_users` (line 42) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 58) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/up/3.sql
  type `e2e_user_notes` (line 25) | CREATE TABLE `e2e_user_notes` (
  type `e2e_users` (line 43) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 59) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/up/4.sql
  type `e2e_user_notes` (line 25) | CREATE TABLE `e2e_user_notes` (
  type `e2e_users` (line 43) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 59) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/up/5.sql
  type `e2e_user_notes` (line 25) | CREATE TABLE `e2e_user_notes` (
  type `e2e_users` (line 44) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 60) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/up/6.sql
  type `e2e_user_posts` (line 25) | CREATE TABLE `e2e_user_posts` (
  type `e2e_users` (line 44) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 60) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/up/7.sql
  type `e2e_user_posts` (line 25) | CREATE TABLE `e2e_user_posts` (
  type `e2e_users` (line 44) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 60) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/up/8.sql
  type `e2e_user_posts` (line 25) | CREATE TABLE `e2e_user_posts` (
  type `e2e_users` (line 44) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 60) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/mysql/up/9.sql
  type `e2e_user_posts` (line 25) | CREATE TABLE `e2e_user_posts` (
  type `e2e_users` (line 44) | CREATE TABLE `e2e_users` (
  type `schema_migration` (line 59) | CREATE TABLE `schema_migration` (

FILE: testdata/e2e/fixtures/postgres/down/0.sql
  type public (line 25) | CREATE TABLE public.schema_migration (
  type schema_migration_version_idx (line 36) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/down/1.sql
  type public (line 25) | CREATE TABLE public.e2e_users (
  type public (line 39) | CREATE TABLE public.schema_migration (
  type schema_migration_version_idx (line 58) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/down/10.sql
  type public (line 25) | CREATE TABLE public.e2e_user_posts (
  type public (line 39) | CREATE TABLE public.e2e_users (
  type public (line 52) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 79) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_posts USI...
  type e2e_user_notes_user_id_idx (line 86) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_posts USING b...
  type schema_migration_version_idx (line 93) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/down/11.sql
  type public (line 25) | CREATE TABLE public.e2e_user_posts (
  type public (line 39) | CREATE TABLE public.e2e_users (
  type public (line 52) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 79) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_posts USI...
  type e2e_user_notes_user_id_idx (line 86) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_posts USING b...
  type schema_migration_version_idx (line 93) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/down/12.sql
  type public (line 25) | CREATE TABLE public.e2e_authors (
  type public (line 38) | CREATE TABLE public.e2e_user_posts (
  type public (line 52) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 79) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_posts USI...
  type e2e_user_notes_user_id_idx (line 86) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_posts USING b...
  type schema_migration_version_idx (line 93) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/down/13.sql
  type public (line 25) | CREATE TABLE public.e2e_authors (
  type public (line 38) | CREATE TABLE public.e2e_user_posts (
  type public (line 52) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 79) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_posts USI...
  type e2e_user_notes_user_id_idx (line 86) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_posts USING b...
  type schema_migration_version_idx (line 93) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/down/14.sql
  type public (line 25) | CREATE TABLE public.e2e_authors (
  type public (line 38) | CREATE TABLE public.e2e_user_posts (
  type public (line 53) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 80) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_posts USI...
  type e2e_user_notes_user_id_idx (line 87) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_posts USING b...
  type schema_migration_version_idx (line 94) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/down/15.sql
  type public (line 25) | CREATE TABLE public.e2e_address (
  type public (line 36) | CREATE TABLE public.e2e_authors (
  type public (line 49) | CREATE TABLE public.e2e_flow (
  type public (line 60) | CREATE TABLE public.e2e_token (
  type public (line 76) | CREATE TABLE public.e2e_user_posts (
  type public (line 91) | CREATE TABLE public.schema_migration (
  type e2e_token_idx (line 142) | CREATE INDEX e2e_token_idx ON public.e2e_token USING btree (token)
  type e2e_token_uq_idx (line 149) | CREATE UNIQUE INDEX e2e_token_uq_idx ON public.e2e_token USING btree (to...
  type e2e_user_notes_slug_idx (line 156) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_posts USI...
  type e2e_user_notes_user_id_idx (line 163) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_posts USING b...
  type schema_migration_version_idx (line 170) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/down/2.sql
  type public (line 25) | CREATE TABLE public.e2e_user_notes (
  type public (line 39) | CREATE TABLE public.e2e_users (
  type public (line 53) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_title_idx (line 80) | CREATE INDEX e2e_user_notes_title_idx ON public.e2e_user_notes USING btr...
  type e2e_user_notes_user_id_idx (line 87) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_notes USING b...
  type schema_migration_version_idx (line 94) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/down/3.sql
  type public (line 25) | CREATE TABLE public.e2e_user_notes (
  type public (line 38) | CREATE TABLE public.e2e_users (
  type public (line 52) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_user_id_idx (line 79) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_notes USING b...
  type schema_migration_version_idx (line 86) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/down/4.sql
  type public (line 25) | CREATE TABLE public.e2e_user_notes (
  type public (line 39) | CREATE TABLE public.e2e_users (
  type public (line 53) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 80) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_notes USI...
  type e2e_user_notes_user_id_idx (line 87) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_notes USING b...
  type schema_migration_version_idx (line 94) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/down/5.sql
  type public (line 25) | CREATE TABLE public.e2e_user_notes (
  type public (line 39) | CREATE TABLE public.e2e_users (
  type public (line 53) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 80) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_notes USI...
  type e2e_user_notes_user_id_idx (line 87) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_notes USING b...
  type schema_migration_version_idx (line 94) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/down/6.sql
  type public (line 25) | CREATE TABLE public.e2e_user_notes (
  type public (line 39) | CREATE TABLE public.e2e_users (
  type public (line 53) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 80) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_notes USI...
  type e2e_user_notes_user_id_idx (line 87) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_notes USING b...
  type schema_migration_version_idx (line 94) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/down/7.sql
  type public (line 25) | CREATE TABLE public.e2e_user_posts (
  type public (line 39) | CREATE TABLE public.e2e_users (
  type public (line 53) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 80) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_posts USI...
  type e2e_user_notes_user_id_idx (line 87) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_posts USING b...
  type schema_migration_version_idx (line 94) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/down/8.sql
  type public (line 25) | CREATE TABLE public.e2e_user_posts (
  type public (line 39) | CREATE TABLE public.e2e_users (
  type public (line 53) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 80) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_posts USI...
  type e2e_user_notes_user_id_idx (line 87) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_posts USING b...
  type schema_migration_version_idx (line 94) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/down/9.sql
  type public (line 25) | CREATE TABLE public.e2e_user_posts (
  type public (line 39) | CREATE TABLE public.e2e_users (
  type public (line 53) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 80) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_posts USI...
  type e2e_user_notes_user_id_idx (line 87) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_posts USING b...
  type schema_migration_version_idx (line 94) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/up/0.sql
  type public (line 25) | CREATE TABLE public.e2e_users (
  type public (line 39) | CREATE TABLE public.schema_migration (
  type schema_migration_version_idx (line 58) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/up/1.sql
  type public (line 25) | CREATE TABLE public.e2e_user_notes (
  type public (line 39) | CREATE TABLE public.e2e_users (
  type public (line 53) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_title_idx (line 80) | CREATE INDEX e2e_user_notes_title_idx ON public.e2e_user_notes USING btr...
  type e2e_user_notes_user_id_idx (line 87) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_notes USING b...
  type schema_migration_version_idx (line 94) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/up/10.sql
  type public (line 25) | CREATE TABLE public.e2e_user_posts (
  type public (line 39) | CREATE TABLE public.e2e_users (
  type public (line 52) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 79) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_posts USI...
  type e2e_user_notes_user_id_idx (line 86) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_posts USING b...
  type schema_migration_version_idx (line 93) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/up/11.sql
  type public (line 25) | CREATE TABLE public.e2e_authors (
  type public (line 38) | CREATE TABLE public.e2e_user_posts (
  type public (line 52) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 79) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_posts USI...
  type e2e_user_notes_user_id_idx (line 86) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_posts USING b...
  type schema_migration_version_idx (line 93) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/up/12.sql
  type public (line 25) | CREATE TABLE public.e2e_authors (
  type public (line 38) | CREATE TABLE public.e2e_user_posts (
  type public (line 52) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 79) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_posts USI...
  type e2e_user_notes_user_id_idx (line 86) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_posts USING b...
  type schema_migration_version_idx (line 93) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/up/13.sql
  type public (line 25) | CREATE TABLE public.e2e_authors (
  type public (line 38) | CREATE TABLE public.e2e_user_posts (
  type public (line 53) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 80) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_posts USI...
  type e2e_user_notes_user_id_idx (line 87) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_posts USING b...
  type schema_migration_version_idx (line 94) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/up/14.sql
  type public (line 25) | CREATE TABLE public.e2e_address (
  type public (line 36) | CREATE TABLE public.e2e_authors (
  type public (line 49) | CREATE TABLE public.e2e_flow (
  type public (line 60) | CREATE TABLE public.e2e_token (
  type public (line 74) | CREATE TABLE public.e2e_user_posts (
  type public (line 89) | CREATE TABLE public.schema_migration (
  type e2e_token_idx (line 140) | CREATE INDEX e2e_token_idx ON public.e2e_token USING btree (token)
  type e2e_token_uq_idx (line 147) | CREATE UNIQUE INDEX e2e_token_uq_idx ON public.e2e_token USING btree (to...
  type e2e_user_notes_slug_idx (line 154) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_posts USI...
  type e2e_user_notes_user_id_idx (line 161) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_posts USING b...
  type schema_migration_version_idx (line 168) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/up/15.sql
  type public (line 25) | CREATE TABLE public.e2e_address (
  type public (line 36) | CREATE TABLE public.e2e_authors (
  type public (line 49) | CREATE TABLE public.e2e_flow (
  type public (line 60) | CREATE TABLE public.e2e_token (
  type public (line 76) | CREATE TABLE public.e2e_user_posts (
  type public (line 91) | CREATE TABLE public.schema_migration (
  type e2e_token_idx (line 142) | CREATE INDEX e2e_token_idx ON public.e2e_token USING btree (token)
  type e2e_token_uq_idx (line 149) | CREATE UNIQUE INDEX e2e_token_uq_idx ON public.e2e_token USING btree (to...
  type e2e_user_notes_slug_idx (line 156) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_posts USI...
  type e2e_user_notes_user_id_idx (line 163) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_posts USING b...
  type schema_migration_version_idx (line 170) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/up/2.sql
  type public (line 25) | CREATE TABLE public.e2e_user_notes (
  type public (line 38) | CREATE TABLE public.e2e_users (
  type public (line 52) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_user_id_idx (line 79) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_notes USING b...
  type schema_migration_version_idx (line 86) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/up/3.sql
  type public (line 25) | CREATE TABLE public.e2e_user_notes (
  type public (line 39) | CREATE TABLE public.e2e_users (
  type public (line 53) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_user_id_idx (line 80) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_notes USING b...
  type schema_migration_version_idx (line 87) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/up/4.sql
  type public (line 25) | CREATE TABLE public.e2e_user_notes (
  type public (line 39) | CREATE TABLE public.e2e_users (
  type public (line 53) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_user_id_idx (line 80) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_notes USING b...
  type schema_migration_version_idx (line 87) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/up/5.sql
  type public (line 25) | CREATE TABLE public.e2e_user_notes (
  type public (line 39) | CREATE TABLE public.e2e_users (
  type public (line 53) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 80) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_notes USI...
  type e2e_user_notes_user_id_idx (line 87) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_notes USING b...
  type schema_migration_version_idx (line 94) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/up/6.sql
  type public (line 25) | CREATE TABLE public.e2e_user_posts (
  type public (line 39) | CREATE TABLE public.e2e_users (
  type public (line 53) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 80) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_posts USI...
  type e2e_user_notes_user_id_idx (line 87) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_posts USING b...
  type schema_migration_version_idx (line 94) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/up/7.sql
  type public (line 25) | CREATE TABLE public.e2e_user_posts (
  type public (line 39) | CREATE TABLE public.e2e_users (
  type public (line 53) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 80) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_posts USI...
  type e2e_user_notes_user_id_idx (line 87) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_posts USING b...
  type schema_migration_version_idx (line 94) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/up/8.sql
  type public (line 25) | CREATE TABLE public.e2e_user_posts (
  type public (line 39) | CREATE TABLE public.e2e_users (
  type public (line 53) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 80) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_posts USI...
  type e2e_user_notes_user_id_idx (line 87) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_posts USING b...
  type schema_migration_version_idx (line 94) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/postgres/up/9.sql
  type public (line 25) | CREATE TABLE public.e2e_user_posts (
  type public (line 39) | CREATE TABLE public.e2e_users (
  type public (line 52) | CREATE TABLE public.schema_migration (
  type e2e_user_notes_slug_idx (line 79) | CREATE UNIQUE INDEX e2e_user_notes_slug_idx ON public.e2e_user_posts USI...
  type e2e_user_notes_user_id_idx (line 86) | CREATE INDEX e2e_user_notes_user_id_idx ON public.e2e_user_posts USING b...
  type schema_migration_version_idx (line 93) | CREATE UNIQUE INDEX schema_migration_version_idx ON public.schema_migrat...

FILE: testdata/e2e/fixtures/sqlite3/down/0.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...

FILE: testdata/e2e/fixtures/sqlite3/down/1.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (

FILE: testdata/e2e/fixtures/sqlite3/down/10.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (
  type "e2e_user_posts" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_posts" (
  type "e2e_user_posts" (line 17) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_posts" (slug)
  type "e2e_user_posts" (line 18) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_posts" (user_id)

FILE: testdata/e2e/fixtures/sqlite3/down/11.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (
  type "e2e_user_posts" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_posts" (
  type "e2e_user_posts" (line 17) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_posts" ("user_id")
  type "e2e_user_posts" (line 18) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_posts" (slug)

FILE: testdata/e2e/fixtures/sqlite3/down/12.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_authors" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_authors" (
  type "e2e_user_posts" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_posts" (
  type "e2e_user_posts" (line 17) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_posts" ("user_id")
  type "e2e_user_posts" (line 18) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_posts" (slug)

FILE: testdata/e2e/fixtures/sqlite3/down/13.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_authors" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_authors" (
  type "e2e_user_posts" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_posts" (
  type "e2e_user_posts" (line 17) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_posts" (author_id)
  type "e2e_user_posts" (line 18) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_posts" (slug)

FILE: testdata/e2e/fixtures/sqlite3/down/14.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_authors" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_authors" (
  type "e2e_user_posts" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_posts" (
  type "e2e_user_posts" (line 18) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_posts" (slug)
  type "e2e_user_posts" (line 19) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_posts" (author_id)

FILE: testdata/e2e/fixtures/sqlite3/down/15.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_authors" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_authors" (
  type "e2e_user_posts" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_posts" (
  type "e2e_user_posts" (line 18) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_posts" (slug)
  type "e2e_user_posts" (line 19) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_posts" (author_id)
  type "e2e_flow" (line 20) | CREATE TABLE IF NOT EXISTS "e2e_flow" (
  type "e2e_address" (line 23) | CREATE TABLE IF NOT EXISTS "e2e_address" (
  type "e2e_token" (line 26) | CREATE TABLE IF NOT EXISTS "e2e_token" (
  type "e2e_token" (line 36) | CREATE UNIQUE INDEX "e2e_token_uq_idx" ON "e2e_token" (token)
  type "e2e_token" (line 37) | CREATE INDEX "e2e_token_idx" ON "e2e_token" (token)

FILE: testdata/e2e/fixtures/sqlite3/down/2.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (
  type "e2e_user_notes" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_notes" (
  type "e2e_user_notes" (line 16) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_notes" (user_id)
  type "e2e_user_notes" (line 17) | CREATE INDEX "e2e_user_notes_title_idx" ON "e2e_user_notes" (title)

FILE: testdata/e2e/fixtures/sqlite3/down/3.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (
  type "e2e_user_notes" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_notes" (
  type "e2e_user_notes" (line 16) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_notes" (user_id)

FILE: testdata/e2e/fixtures/sqlite3/down/4.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (
  type "e2e_user_notes" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_notes" (
  type "e2e_user_notes" (line 16) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_notes" (user_id)
  type "e2e_user_notes" (line 17) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_notes" (slug)

FILE: testdata/e2e/fixtures/sqlite3/down/5.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (
  type "e2e_user_notes" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_notes" (
  type "e2e_user_notes" (line 16) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_notes" (user_id)
  type "e2e_user_notes" (line 17) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_notes" (slug)

FILE: testdata/e2e/fixtures/sqlite3/down/6.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (
  type "e2e_user_notes" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_notes" (
  type "e2e_user_notes" (line 16) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_notes" (user_id)
  type "e2e_user_notes" (line 17) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_notes" (slug)

FILE: testdata/e2e/fixtures/sqlite3/down/7.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (
  type "e2e_user_posts" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_posts" (
  type "e2e_user_posts" (line 16) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_posts" (user_id)
  type "e2e_user_posts" (line 17) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_posts" (slug)

FILE: testdata/e2e/fixtures/sqlite3/down/8.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (
  type "e2e_user_posts" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_posts" (
  type "e2e_user_posts" (line 17) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_posts" (slug)
  type "e2e_user_posts" (line 18) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_posts" (user_id)

FILE: testdata/e2e/fixtures/sqlite3/down/9.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (
  type "e2e_user_posts" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_posts" (
  type "e2e_user_posts" (line 17) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_posts" (slug)
  type "e2e_user_posts" (line 18) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_posts" (user_id)

FILE: testdata/e2e/fixtures/sqlite3/up/0.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (

FILE: testdata/e2e/fixtures/sqlite3/up/1.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (
  type "e2e_user_notes" (line 11) | CREATE TABLE IF NOT EXISTS "e2e_user_notes" (
  type "e2e_user_notes" (line 18) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_notes" (user_id)
  type "e2e_user_notes" (line 19) | CREATE INDEX "e2e_user_notes_title_idx" ON "e2e_user_notes" (title)

FILE: testdata/e2e/fixtures/sqlite3/up/10.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (
  type "e2e_user_posts" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_posts" (
  type "e2e_user_posts" (line 17) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_posts" (user_id)
  type "e2e_user_posts" (line 18) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_posts" (slug)

FILE: testdata/e2e/fixtures/sqlite3/up/11.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_authors" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_authors" (
  type "e2e_user_posts" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_posts" (
  type "e2e_user_posts" (line 17) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_posts" (user_id)
  type "e2e_user_posts" (line 18) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_posts" (slug)

FILE: testdata/e2e/fixtures/sqlite3/up/12.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_authors" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_authors" (
  type "e2e_user_posts" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_posts" (
  type "e2e_user_posts" (line 17) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_posts" ("author_id")
  type "e2e_user_posts" (line 18) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_posts" (slug)

FILE: testdata/e2e/fixtures/sqlite3/up/13.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_authors" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_authors" (
  type "e2e_user_posts" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_posts" (
  type "e2e_user_posts" (line 18) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_posts" (slug)
  type "e2e_user_posts" (line 19) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_posts" (author_id)

FILE: testdata/e2e/fixtures/sqlite3/up/14.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_authors" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_authors" (
  type "e2e_user_posts" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_posts" (
  type "e2e_user_posts" (line 18) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_posts" (slug)
  type "e2e_user_posts" (line 19) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_posts" (author_id)
  type "e2e_flow" (line 20) | CREATE TABLE IF NOT EXISTS "e2e_flow" (
  type "e2e_address" (line 23) | CREATE TABLE IF NOT EXISTS "e2e_address" (
  type "e2e_token" (line 26) | CREATE TABLE IF NOT EXISTS "e2e_token" (
  type "e2e_token" (line 34) | CREATE UNIQUE INDEX "e2e_token_uq_idx" ON "e2e_token" (token)
  type "e2e_token" (line 35) | CREATE INDEX "e2e_token_idx" ON "e2e_token" (token)

FILE: testdata/e2e/fixtures/sqlite3/up/15.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_authors" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_authors" (
  type "e2e_user_posts" (line 10) | CREATE TABLE IF NOT EXISTS "e2e_user_posts" (
  type "e2e_user_posts" (line 18) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_posts" (slug)
  type "e2e_user_posts" (line 19) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_posts" (author_id)
  type "e2e_flow" (line 20) | CREATE TABLE IF NOT EXISTS "e2e_flow" (
  type "e2e_address" (line 23) | CREATE TABLE IF NOT EXISTS "e2e_address" (
  type "e2e_token" (line 26) | CREATE TABLE IF NOT EXISTS "e2e_token" (
  type "e2e_token" (line 36) | CREATE INDEX "e2e_token_idx" ON "e2e_token" (token)
  type "e2e_token" (line 37) | CREATE UNIQUE INDEX "e2e_token_uq_idx" ON "e2e_token" (token)

FILE: testdata/e2e/fixtures/sqlite3/up/2.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (
  type "e2e_user_notes" (line 11) | CREATE TABLE IF NOT EXISTS "e2e_user_notes" (
  type "e2e_user_notes" (line 17) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_notes" (user_id)

FILE: testdata/e2e/fixtures/sqlite3/up/3.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (
  type "e2e_user_notes" (line 11) | CREATE TABLE IF NOT EXISTS "e2e_user_notes" (
  type "e2e_user_notes" (line 17) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_notes" (user_id)

FILE: testdata/e2e/fixtures/sqlite3/up/4.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (
  type "e2e_user_notes" (line 11) | CREATE TABLE IF NOT EXISTS "e2e_user_notes" (
  type "e2e_user_notes" (line 17) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_notes" (user_id)

FILE: testdata/e2e/fixtures/sqlite3/up/5.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (
  type "e2e_user_notes" (line 11) | CREATE TABLE IF NOT EXISTS "e2e_user_notes" (
  type "e2e_user_notes" (line 18) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_notes" (user_id)
  type "e2e_user_notes" (line 19) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_notes" (slug)

FILE: testdata/e2e/fixtures/sqlite3/up/6.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (
  type "e2e_user_posts" (line 11) | CREATE TABLE IF NOT EXISTS "e2e_user_posts" (
  type "e2e_user_posts" (line 18) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_posts" (user_id)
  type "e2e_user_posts" (line 19) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_posts" (slug)

FILE: testdata/e2e/fixtures/sqlite3/up/7.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (
  type "e2e_user_posts" (line 11) | CREATE TABLE IF NOT EXISTS "e2e_user_posts" (
  type "e2e_user_posts" (line 18) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_posts" (slug)
  type "e2e_user_posts" (line 19) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_posts" (user_id)

FILE: testdata/e2e/fixtures/sqlite3/up/8.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_users" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_users" (
  type "e2e_user_posts" (line 11) | CREATE TABLE IF NOT EXISTS "e2e_user_posts" (
  type "e2e_user_posts" (line 18) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_posts" (slug)
  type "e2e_user_posts" (line 19) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_posts" (user_id)

FILE: testdata/e2e/fixtures/sqlite3/up/9.sql
  type "schema_migration" (line 1) | CREATE TABLE IF NOT EXISTS "schema_migration" (
  type "schema_migration" (line 4) | CREATE UNIQUE INDEX "schema_migration_version_idx" ON "schema_migration"...
  type "e2e_user_posts" (line 5) | CREATE TABLE IF NOT EXISTS "e2e_user_posts" (
  type "e2e_user_posts" (line 12) | CREATE UNIQUE INDEX "e2e_user_notes_slug_idx" ON "e2e_user_posts" (slug)
  type "e2e_user_posts" (line 13) | CREATE INDEX "e2e_user_notes_user_id_idx" ON "e2e_user_posts" (user_id)
  type "e2e_users" (line 14) | CREATE TABLE IF NOT EXISTS "e2e_users" (

FILE: testdata/e2e/integration_test.go
  function TestSpecificSuites (line 15) | func TestSpecificSuites(t *testing.T) {

FILE: testdata/e2e/migrator_test.go
  function run (line 18) | func run(s *suite.Suite, c *pop.Connection, checkSchema func()) {
  function expectEqualFiles (line 73) | func expectEqualFiles(s *suite.Suite, expected, actual string) bool {
  function normalizeDump (line 99) | func normalizeDump(in string) string {
  function retryOpen (line 106) | func retryOpen(c *pop.Connection) (err error) {
  function runTestData (line 123) | func runTestData(s *suite.Suite, c *pop.Connection, supportsUUID bool) f...
  function runInsertUUID (line 138) | func runInsertUUID(c *pop.Connection, r *require.Assertions) {
  function runForeignKeyChecks (line 143) | func runForeignKeyChecks(c *pop.Connection, r *require.Assertions) {
  function runUniqueKeyChecks (line 155) | func runUniqueKeyChecks(c *pop.Connection, r *require.Assertions) {
  function runNotNullChecks (line 167) | func runNotNullChecks(c *pop.Connection, r *require.Assertions) {

FILE: testdata/e2e/mysql_test.go
  type MySQLSuite (line 8) | type MySQLSuite struct
    method Test_MySQL_MigrationSteps (line 12) | func (s *MySQLSuite) Test_MySQL_MigrationSteps() {

FILE: testdata/e2e/postgres_test.go
  type PostgreSQLSuite (line 8) | type PostgreSQLSuite struct
    method Test_PostgreSQL_MigrationSteps (line 12) | func (s *PostgreSQLSuite) Test_PostgreSQL_MigrationSteps() {

FILE: testdata/e2e/sqlite3_test.go
  type SQLiteSuite (line 10) | type SQLiteSuite struct
    method Test_SQLite_MigrationSteps (line 14) | func (s *SQLiteSuite) Test_SQLite_MigrationSteps() {

FILE: translator.go
  type Translator (line 5) | type Translator interface

FILE: translators/cockroach.go
  type Cockroach (line 10) | type Cockroach struct
    method Name (line 26) | func (Cockroach) Name() string {
    method CreateTable (line 30) | func (p *Cockroach) CreateTable(t fizz.Table) (string, error) {
    method DropTable (line 81) | func (p *Cockroach) DropTable(t fizz.Table) (string, error) {
    method RenameTable (line 86) | func (p *Cockroach) RenameTable(t []fizz.Table) (string, error) {
    method ChangeColumn (line 101) | func (p *Cockroach) ChangeColumn(t fizz.Table) (string, error) {
    method AddColumn (line 162) | func (p *Cockroach) AddColumn(t fizz.Table) (string, error) {
    method DropColumn (line 188) | func (p *Cockroach) DropColumn(t fizz.Table) (string, error) {
    method RenameColumn (line 197) | func (p *Cockroach) RenameColumn(t fizz.Table) (string, error) {
    method AddIndex (line 220) | func (p *Cockroach) AddIndex(t fizz.Table) (string, error) {
    method DropIndex (line 239) | func (p *Cockroach) DropIndex(t fizz.Table) (string, error) {
    method RenameIndex (line 261) | func (p *Cockroach) RenameIndex(t fizz.Table) (string, error) {
    method AddForeignKey (line 283) | func (p *Cockroach) AddForeignKey(t fizz.Table) (string, error) {
    method DropForeignKey (line 297) | func (p *Cockroach) DropForeignKey(t fizz.Table) (string, error) {
    method buildAddColumn (line 325) | func (p *Cockroach) buildAddColumn(c fizz.Column) string {
    method buildChangeColumn (line 341) | func (p *Cockroach) buildChangeColumn(oldCol fizz.Column, c fizz.Colum...
    method withTempTable (line 362) | func (p *Cockroach) withTempTable(table string, fn func(fizz.Table) (s...
    method withTempColumn (line 375) | func (p *Cockroach) withTempColumn(tableName string, column string, fn...
    method colType (line 460) | func (p *Cockroach) colType(c fizz.Column) string {
    method buildForeignKey (line 490) | func (p *Cockroach) buildForeignKey(t fizz.Table, fk fizz.ForeignKey, ...
    method escapeIdentifier (line 513) | func (Cockroach) escapeIdentifier(s string) string {
  function NewCockroach (line 14) | func NewCockroach(url string, name string) *Cockroach {

FILE: translators/cockroach_meta.go
  type cockroachForeignKeyListInfo (line 10) | type cockroachForeignKeyListInfo struct
  type cockroachIndexListInfo (line 20) | type cockroachIndexListInfo struct
  type cockroachIndexInfo (line 25) | type cockroachIndexInfo struct
  type cockroachTableInfo (line 30) | type cockroachTableInfo struct
    method ToColumn (line 38) | func (t cockroachTableInfo) ToColumn() fizz.Column {
  type cockroachSchema (line 54) | type cockroachSchema struct
    method Build (line 58) | func (p *cockroachSchema) Build() error {
    method buildTableData (line 90) | func (p *cockroachSchema) buildTableData(table *fizz.Table, db *sql.DB...
    method buildTableIndexes (line 134) | func (p *cockroachSchema) buildTableIndexes(t *fizz.Table, db *sql.DB)...
    method buildForeignKeyIndexes (line 183) | func (p *cockroachSchema) buildForeignKeyIndexes(t *fizz.Table, db *sq...

FILE: translators/cockroach_test.go
  method crdbt (line 10) | func (p *CockroachSuite) crdbt() *translators.Cockroach {
  method Test_Cockroach_CreateTable (line 33) | func (p *CockroachSuite) Test_Cockroach_CreateTable() {
  method Test_Cockroach_CreateTable_UUID (line 66) | func (p *CockroachSuite) Test_Cockroach_CreateTable_UUID() {
  method Test_Cockroach_CreateTables_WithForeignKeys (line 93) | func (p *CockroachSuite) Test_Cockroach_CreateTables_WithForeignKeys() {
  method Test_Cockroach_CreateTables_WithCompositePrimaryKey (line 129) | func (p *CockroachSuite) Test_Cockroach_CreateTables_WithCompositePrimar...
  method Test_Cockroach_DropTable (line 149) | func (p *CockroachSuite) Test_Cockroach_DropTable() {
  method Test_Cockroach_RenameTable (line 158) | func (p *CockroachSuite) Test_Cockroach_RenameTable() {
  method Test_Cockroach_RenameTable_NotEnoughValues (line 167) | func (p *CockroachSuite) Test_Cockroach_RenameTable_NotEnoughValues() {
  method Test_Cockroach_ChangeColumn (line 174) | func (p *CockroachSuite) Test_Cockroach_ChangeColumn() {
  method Test_Cockroach_AddColumn (line 186) | func (p *CockroachSuite) Test_Cockroach_AddColumn() {
  method Test_Cockroach_DropColumn (line 195) | func (p *CockroachSuite) Test_Cockroach_DropColumn() {
  method Test_Cockroach_RenameColumn (line 204) | func (p *CockroachSuite) Test_Cockroach_RenameColumn() {
  method Test_Cockroach_AddIndex (line 212) | func (p *CockroachSuite) Test_Cockroach_AddIndex() {
  method Test_Cockroach_AddIndex_Unique (line 220) | func (p *CockroachSuite) Test_Cockroach_AddIndex_Unique() {
  method Test_Cockroach_AddIndex_MultiColumn (line 228) | func (p *CockroachSuite) Test_Cockroach_AddIndex_MultiColumn() {
  method Test_Cockroach_AddIndex_CustomName (line 236) | func (p *CockroachSuite) Test_Cockroach_AddIndex_CustomName() {
  method Test_Cockroach_DropIndex (line 244) | func (p *CockroachSuite) Test_Cockroach_DropIndex() {
  method Test_Cockroach_RenameIndex (line 252) | func (p *CockroachSuite) Test_Cockroach_RenameIndex() {
  method buildSchema (line 261) | func (p *CockroachSuite) buildSchema() translators.Schema {
  method Test_Cockroach_AddForeignKey (line 270) | func (p *CockroachSuite) Test_Cockroach_AddForeignKey() {
  method Test_Cockroach_DropForeignKey (line 279) | func (p *CockroachSuite) Test_Cockroach_DropForeignKey() {
  method Test_Cockroach_CreateTable_With_DefaultRaw_Value_In_Primary_Field (line 288) | func (p *CockroachSuite) Test_Cockroach_CreateTable_With_DefaultRaw_Valu...

FILE: translators/mariadb.go
  type MariaDB (line 4) | type MariaDB struct
    method Name (line 17) | func (MariaDB) Name() string {
  function NewMariaDB (line 9) | func NewMariaDB(url, name string) *MariaDB {

FILE: translators/mariadb_test.go
  function init (line 13) | func init() {
  method Test_MySQL_SchemaMigration (line 19) | func (p *MariaDBSuite) Test_MySQL_SchemaMigration() {

FILE: translators/mssqlserver.go
  type MsSqlServer (line 11) | type MsSqlServer struct
    method Name (line 18) | func (MsSqlServer) Name() string {
    method CreateTable (line 22) | func (p *MsSqlServer) CreateTable(t fizz.Table) (string, error) {
    method DropTable (line 66) | func (p *MsSqlServer) DropTable(t fizz.Table) (string, error) {
    method RenameTable (line 70) | func (p *MsSqlServer) RenameTable(t []fizz.Table) (string, error) {
    method ChangeColumn (line 77) | func (p *MsSqlServer) ChangeColumn(t fizz.Table) (string, error) {
    method AddColumn (line 109) | func (p *MsSqlServer) AddColumn(t fizz.Table) (string, error) {
    method DropColumn (line 126) | func (p *MsSqlServer) DropColumn(t fizz.Table) (string, error) {
    method RenameColumn (line 134) | func (p *MsSqlServer) RenameColumn(t fizz.Table) (string, error) {
    method AddIndex (line 144) | func (p *MsSqlServer) AddIndex(t fizz.Table) (string, error) {
    method DropIndex (line 156) | func (p *MsSqlServer) DropIndex(t fizz.Table) (string, error) {
    method RenameIndex (line 164) | func (p *MsSqlServer) RenameIndex(t fizz.Table) (string, error) {
    method AddForeignKey (line 174) | func (p *MsSqlServer) AddForeignKey(t fizz.Table) (string, error) {
    method DropForeignKey (line 182) | func (p *MsSqlServer) DropForeignKey(t fizz.Table) (string, error) {
    method buildAddColumn (line 198) | func (p *MsSqlServer) buildAddColumn(tableName string, c fizz.Column) ...
    method colType (line 217) | func (p *MsSqlServer) colType(c fizz.Column) string {
    method buildForeignKey (line 251) | func (p *MsSqlServer) buildForeignKey(t fizz.Table, fk fizz.ForeignKey...
  function NewMsSqlServer (line 14) | func NewMsSqlServer() *MsSqlServer {

FILE: translators/mssqlserver_test.go
  method Test_MsSqlServer_SchemaMigration (line 11) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_SchemaMigration() {
  method Test_MsSqlServer_CreateTable (line 31) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_CreateTable() {
  method Test_MsSqlServer_CreateTable_UUID (line 59) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_CreateTable_UUID() {
  method Test_MsSqlServer_CreateTables_WithForeignKeys (line 85) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_CreateTables_WithForeignK...
  method Test_MsSqlServer_CreateTables_WithCompositePrimaryKey (line 119) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_CreateTables_WithComposit...
  method Test_MsSqlServer_DropTable (line 139) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_DropTable() {
  method Test_MsSqlServer_RenameTable (line 148) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_RenameTable() {
  method Test_MsSqlServer_RenameTable_NotEnoughValues (line 157) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_RenameTable_NotEnoughValu...
  method Test_MsSqlServer_ChangeColumn (line 164) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_ChangeColumn() {
  method Test_MsSqlServer_AddColumn (line 175) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_AddColumn() {
  method Test_MsSqlServer_DropColumn (line 184) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_DropColumn() {
  method Test_MsSqlServer_RenameColumn (line 193) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_RenameColumn() {
  method Test_MsSqlServer_AddIndex (line 201) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_AddIndex() {
  method Test_MsSqlServer_AddIndex_Unique (line 209) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_AddIndex_Unique() {
  method Test_MsSqlServer_AddIndex_MultiColumn (line 217) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_AddIndex_MultiColumn() {
  method Test_MsSqlServer_AddIndex_CustomName (line 225) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_AddIndex_CustomName() {
  method Test_MsSqlServer_DropIndex (line 233) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_DropIndex() {
  method Test_MsSqlServer_RenameIndex (line 241) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_RenameIndex() {
  method Test_MsSqlServer_AddForeignKey (line 250) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_AddForeignKey() {
  method Test_MsSqlServer_DropForeignKey (line 258) | func (p *MsSqlServerSQLSuite) Test_MsSqlServer_DropForeignKey() {

FILE: translators/mysql.go
  type MySQL (line 12) | type MySQL struct
    method Name (line 27) | func (MySQL) Name() string {
    method CreateTable (line 32) | func (p *MySQL) CreateTable(t fizz.Table) (string, error) {
    method DropTable (line 72) | func (p *MySQL) DropTable(t fizz.Table) (string, error) {
    method RenameTable (line 76) | func (p *MySQL) RenameTable(t []fizz.Table) (string, error) {
    method ChangeColumn (line 83) | func (p *MySQL) ChangeColumn(t fizz.Table) (string, error) {
    method AddColumn (line 92) | func (p *MySQL) AddColumn(t fizz.Table) (string, error) {
    method DropColumn (line 114) | func (p *MySQL) DropColumn(t fizz.Table) (string, error) {
    method RenameColumn (line 122) | func (p *MySQL) RenameColumn(t fizz.Table) (string, error) {
    method AddIndex (line 145) | func (p *MySQL) AddIndex(t fizz.Table) (string, error) {
    method DropIndex (line 161) | func (p *MySQL) DropIndex(t fizz.Table) (string, error) {
    method RenameIndex (line 169) | func (p *MySQL) RenameIndex(t fizz.Table) (string, error) {
    method AddForeignKey (line 187) | func (p *MySQL) AddForeignKey(t fizz.Table) (string, error) {
    method DropForeignKey (line 195) | func (p *MySQL) DropForeignKey(t fizz.Table) (string, error) {
    method buildColumn (line 211) | func (p *MySQL) buildColumn(c fizz.Column) string {
    method colType (line 234) | func (p *MySQL) colType(c fizz.Column) string {
    method buildForeignKey (line 269) | func (p *MySQL) buildForeignKey(t fizz.Table, fk fizz.ForeignKey, onCr...
    method escapeIdentifier (line 292) | func (MySQL) escapeIdentifier(s string) string {
  function NewMySQL (line 18) | func NewMySQL(url, name string) *MySQL {

FILE: translators/mysql_meta.go
  type mysqlTableInfo (line 14) | type mysqlTableInfo struct
    method ToColumn (line 23) | func (ti mysqlTableInfo) ToColumn() fizz.Column {
  type mysqlSchema (line 40) | type mysqlSchema struct
    method Version (line 44) | func (p *mysqlSchema) Version() (*semver.Version, error) {
    method Build (line 70) | func (p *mysqlSchema) Build() error {
    method buildTableData (line 100) | func (p *mysqlSchema) buildTableData(table *fizz.Table, db *sql.DB) er...

FILE: translators/mysql_test.go
  function init (line 14) | func init() {
  method Test_MySQL_SchemaMigration (line 20) | func (p *MySQLSuite) Test_MySQL_SchemaMigration() {
  method Test_MySQL_CreateTable (line 40) | func (p *MySQLSuite) Test_MySQL_CreateTable() {
  method Test_MySQL_CreateTable_UUID (line 88) | func (p *MySQLSuite) Test_MySQL_CreateTable_UUID() {
  method Test_MySQL_CreateTables_WithForeignKeys (line 118) | func (p *MySQLSuite) Test_MySQL_CreateTables_WithForeignKeys() {
  method Test_MySQL_CreateTables_WithVariousInt (line 155) | func (p *MySQLSuite) Test_MySQL_CreateTables_WithVariousInt() {
  method Test_MySQL_CreateTables_WithCompositePrimaryKey (line 182) | func (p *MySQLSuite) Test_MySQL_CreateTables_WithCompositePrimaryKey() {
  method Test_MySQL_DropTable (line 202) | func (p *MySQLSuite) Test_MySQL_DropTable() {
  method Test_MySQL_RenameTable (line 212) | func (p *MySQLSuite) Test_MySQL_RenameTable() {
  method Test_MySQL_RenameTable_NotEnoughValues (line 222) | func (p *MySQLSuite) Test_MySQL_RenameTable_NotEnoughValues() {
  method Test_MySQL_ChangeColumn (line 229) | func (p *MySQLSuite) Test_MySQL_ChangeColumn() {
  method Test_MySQL_AddColumn (line 239) | func (p *MySQLSuite) Test_MySQL_AddColumn() {
  method Test_MySQL_AddColumnAfter (line 249) | func (p *MySQLSuite) Test_MySQL_AddColumnAfter() {
  method Test_MySQL_AddColumnFirst (line 259) | func (p *MySQLSuite) Test_MySQL_AddColumnFirst() {
  method Test_MySQL_DropColumn (line 269) | func (p *MySQLSuite) Test_MySQL_DropColumn() {
  method Test_MySQL_RenameColumn (line 279) | func (p *MySQLSuite) Test_MySQL_RenameColumn() {
  method Test_MySQL_AddIndex (line 288) | func (p *MySQLSuite) Test_MySQL_AddIndex() {
  method Test_MySQL_AddIndex_Unique (line 297) | func (p *MySQLSuite) Test_MySQL_AddIndex_Unique() {
  method Test_MySQL_AddIndex_MultiColumn (line 306) | func (p *MySQLSuite) Test_MySQL_AddIndex_MultiColumn() {
  method Test_MySQL_AddIndex_CustomName (line 315) | func (p *MySQLSuite) Test_MySQL_AddIndex_CustomName() {
  method Test_MySQL_DropIndex (line 324) | func (p *MySQLSuite) Test_MySQL_DropIndex() {
  method Test_MySQL_RenameIndex (line 333) | func (p *MySQLSuite) Test_MySQL_RenameIndex() {
  method Test_MySQL_AddForeignKey (line 343) | func (p *MySQLSuite) Test_MySQL_AddForeignKey() {
  method Test_MySQL_DropForeignKey (line 352) | func (p *MySQLSuite) Test_MySQL_DropForeignKey() {

FILE: translators/postgres.go
  type Postgres (line 10) | type Postgres struct
    method Name (line 17) | func (Postgres) Name() string {
    method CreateTable (line 21) | func (p *Postgres) CreateTable(t fizz.Table) (string, error) {
    method DropTable (line 73) | func (p *Postgres) DropTable(t fizz.Table) (string, error) {
    method RenameTable (line 77) | func (p *Postgres) RenameTable(t []fizz.Table) (string, error) {
    method ChangeColumn (line 84) | func (p *Postgres) ChangeColumn(t fizz.Table) (string, error) {
    method AddColumn (line 93) | func (p *Postgres) AddColumn(t fizz.Table) (string, error) {
    method DropColumn (line 102) | func (p *Postgres) DropColumn(t fizz.Table) (string, error) {
    method RenameColumn (line 110) | func (p *Postgres) RenameColumn(t fizz.Table) (string, error) {
    method AddIndex (line 120) | func (p *Postgres) AddIndex(t fizz.Table) (string, error) {
    method DropIndex (line 132) | func (p *Postgres) DropIndex(t fizz.Table) (string, error) {
    method RenameIndex (line 140) | func (p *Postgres) RenameIndex(t fizz.Table) (string, error) {
    method AddForeignKey (line 150) | func (p *Postgres) AddForeignKey(t fizz.Table) (string, error) {
    method DropForeignKey (line 158) | func (p *Postgres) DropForeignKey(t fizz.Table) (string, error) {
    method buildAddColumn (line 174) | func (p *Postgres) buildAddColumn(c fizz.Column) string {
    method buildChangeColumn (line 190) | func (p *Postgres) buildChangeColumn(c fizz.Column) string {
    method colType (line 212) | func (p *Postgres) colType(c fizz.Column) string {
    method buildForeignKey (line 250) | func (p *Postgres) buildForeignKey(t fizz.Table, fk fizz.ForeignKey, o...
    method escapeIdentifier (line 273) | func (Postgres) escapeIdentifier(s string) string {
  function NewPostgres (line 13) | func NewPostgres() *Postgres {

FILE: translators/postgres_test.go
  method Test_Postgres_CreateTable (line 11) | func (p *PostgreSQLSuite) Test_Postgres_CreateTable() {
  method Test_Postgres_CreateTable_UUID (line 42) | func (p *PostgreSQLSuite) Test_Postgres_CreateTable_UUID() {
  method Test_Postgres_CreateTable_UUID_With_Default (line 87) | func (p *PostgreSQLSuite) Test_Postgres_CreateTable_UUID_With_Default() {
  method Test_Postgres_CreateTable_Cant_Set_PK_To_Nullable (line 103) | func (p *PostgreSQLSuite) Test_Postgres_CreateTable_Cant_Set_PK_To_Nulla...
  method Test_Postgres_CreateTables_WithForeignKeys (line 119) | func (p *PostgreSQLSuite) Test_Postgres_CreateTables_WithForeignKeys() {
  method Test_Postgres_CreateTables_WithCompositePrimaryKey (line 156) | func (p *PostgreSQLSuite) Test_Postgres_CreateTables_WithCompositePrimar...
  method Test_Postgres_DropTable (line 176) | func (p *PostgreSQLSuite) Test_Postgres_DropTable() {
  method Test_Postgres_RenameTable (line 185) | func (p *PostgreSQLSuite) Test_Postgres_RenameTable() {
  method Test_Postgres_RenameTable_NotEnoughValues (line 194) | func (p *PostgreSQLSuite) Test_Postgres_RenameTable_NotEnoughValues() {
  method Test_Postgres_ChangeColumn (line 201) | func (p *PostgreSQLSuite) Test_Postgres_ChangeColumn() {
  method Test_Postgres_AddColumn (line 210) | func (p *PostgreSQLSuite) Test_Postgres_AddColumn() {
  method Test_Postgres_DropColumn (line 219) | func (p *PostgreSQLSuite) Test_Postgres_DropColumn() {
  method Test_Postgres_RenameColumn (line 228) | func (p *PostgreSQLSuite) Test_Postgres_RenameColumn() {
  method Test_Postgres_AddIndex (line 236) | func (p *PostgreSQLSuite) Test_Postgres_AddIndex() {
  method Test_Postgres_AddIndex_Unique (line 244) | func (p *PostgreSQLSuite) Test_Postgres_AddIndex_Unique() {
  method Test_Postgres_AddIndex_MultiColumn (line 252) | func (p *PostgreSQLSuite) Test_Postgres_AddIndex_MultiColumn() {
  method Test_Postgres_AddIndex_CustomName (line 260) | func (p *PostgreSQLSuite) Test_Postgres_AddIndex_CustomName() {
  method Test_Postgres_DropIndex (line 268) | func (p *PostgreSQLSuite) Test_Postgres_DropIndex() {
  method Test_Postgres_RenameIndex (line 276) | func (p *PostgreSQLSuite) Test_Postgres_RenameIndex() {
  method Test_Postgres_AddForeignKey (line 285) | func (p *PostgreSQLSuite) Test_Postgres_AddForeignKey() {
  method Test_Postgres_DropForeignKey (line 294) | func (p *PostgreSQLSuite) Test_Postgres_DropForeignKey() {

FILE: translators/schema.go
  type SchemaQuery (line 10) | type SchemaQuery interface
  type Schema (line 22) | type Schema struct
    method ReplaceSchema (line 37) | func (s *Schema) ReplaceSchema(newSchema map[string]*fizz.Table) {
    method Build (line 41) | func (s *Schema) Build() error {
    method TableInfo (line 45) | func (s *Schema) TableInfo(table string) (*fizz.Table, error) {
    method ReplaceColumn (line 67) | func (s *Schema) ReplaceColumn(table string, oldColumn string, newColu...
    method ColumnInfo (line 81) | func (s *Schema) ColumnInfo(table string, column string) (*fizz.Column...
    method IndexInfo (line 93) | func (s *Schema) IndexInfo(table string, idx string) (*fizz.Index, err...
    method Delete (line 105) | func (s *Schema) Delete(table string) {
    method SetTable (line 109) | func (s *Schema) SetTable(table *fizz.Table) {
    method DeleteColumn (line 113) | func (s *Schema) DeleteColumn(table string, column string) {
    method findColumnInfo (line 126) | func (s *Schema) findColumnInfo(tableInfo *fizz.Table, column string) ...
    method findIndexInfo (line 135) | func (s *Schema) findIndexInfo(tableInfo *fizz.Table, index string) (*...
  function CreateSchema (line 29) | func CreateSchema(name string, url string, schema map[string]*fizz.Table...

FILE: translators/schema_test.go
  method buildSchema (line 8) | func (s *SchemaSuite) buildSchema() translators.Schema {
  method Test_Schema_TableInfo (line 17) | func (s *SchemaSuite) Test_Schema_TableInfo() {
  method Test_Schema_ColumnInfo (line 25) | func (s *SchemaSuite) Test_Schema_ColumnInfo() {
  method Test_Schema_IndexInfo (line 33) | func (s *SchemaSuite) Test_Schema_IndexInfo() {

FILE: translators/sqlite.go
  type SQLite (line 10) | type SQLite struct
    method Name (line 27) | func (SQLite) Name() string {
    method CreateTable (line 31) | func (p *SQLite) CreateTable(t fizz.Table) (string, error) {
    method DropTable (line 82) | func (p *SQLite) DropTable(t fizz.Table) (string, error) {
    method RenameTable (line 88) | func (p *SQLite) RenameTable(t []fizz.Table) (string, error) {
    method ChangeColumn (line 103) | func (p *SQLite) ChangeColumn(t fizz.Table) (string, error) {
    method AddColumn (line 150) | func (p *SQLite) AddColumn(t fizz.Table) (string, error) {
    method DropColumn (line 167) | func (p *SQLite) DropColumn(t fizz.Table) (string, error) {
    method RenameColumn (line 224) | func (p *SQLite) RenameColumn(t fizz.Table) (string, error) {
    method AddIndex (line 234) | func (p *SQLite) AddIndex(t fizz.Table) (string, error) {
    method DropIndex (line 252) | func (p *SQLite) DropIndex(t fizz.Table) (string, error) {
    method RenameIndex (line 274) | func (p *SQLite) RenameIndex(t fizz.Table) (string, error) {
    method AddForeignKey (line 322) | func (p *SQLite) AddForeignKey(t fizz.Table) (string, error) {
    method DropForeignKey (line 326) | func (p *SQLite) DropForeignKey(t fizz.Table) (string, error) {
    method withTempTable (line 330) | func (p *SQLite) withTempTable(table string, fn func(fizz.Table) (stri...
    method withForeignKeyPreservingTempTable (line 353) | func (p *SQLite) withForeignKeyPreservingTempTable(newTable fizz.Table...
    method buildColumn (line 379) | func (p *SQLite) buildColumn(c fizz.Column) string {
    method colType (line 393) | func (p *SQLite) colType(c fizz.Column) string {
    method buildForeignKey (line 417) | func (p *SQLite) buildForeignKey(t fizz.Table, fk fizz.ForeignKey, onC...
  function NewSQLite (line 14) | func NewSQLite(url string) *SQLite {

FILE: translators/sqlite_meta.go
  type sqliteIndexListInfo (line 12) | type sqliteIndexListInfo struct
  type sqliteForeignKeyListInfo (line 20) | type sqliteForeignKeyListInfo struct
  type sqliteIndexInfo (line 31) | type sqliteIndexInfo struct
  type sqliteTableInfo (line 37) | type sqliteTableInfo struct
    method ToColumn (line 46) | func (t sqliteTableInfo) ToColumn() fizz.Column {
  type sqliteSchema (line 62) | type sqliteSchema struct
    method Build (line 66) | func (p *sqliteSchema) Build() error {
    method buildTableData (line 100) | func (p *sqliteSchema) buildTableData(table *fizz.Table, db *sql.DB) e...
    method buildTableIndexes (line 129) | func (p *sqliteSchema) buildTableIndexes(t *fizz.Table, db *sql.DB) er...
    method buildTableForeignKeyIndexes (line 184) | func (p *sqliteSchema) buildTableForeignKeyIndexes(t *fizz.Table, db *...
  function canonicalizeSQLiteTable (line 176) | func canonicalizeSQLiteTable(table string) string {

FILE: translators/sqlite_meta_test.go
  function TestCanonicalizeSQLiteTable (line 9) | func TestCanonicalizeSQLiteTable(t *testing.T) {

FILE: translators/sqlite_test.go
  type fauxSchema (line 21) | type fauxSchema struct
    method Build (line 25) | func (s *fauxSchema) Build() error {
    method IndexInfo (line 29) | func (s *fauxSchema) IndexInfo(table string, column string) (*fizz.Ind...
    method ReplaceSchema (line 33) | func (s *fauxSchema) ReplaceSchema(schema map[string]*fizz.Table) {
    method DeleteColumn (line 37) | func (s *fauxSchema) DeleteColumn(table string, column string) {
    method ReplaceColumn (line 41) | func (s *fauxSchema) ReplaceColumn(table string, column string, newCol...
    method ColumnInfo (line 45) | func (s *fauxSchema) ColumnInfo(table string, column string) (*fizz.Co...
    method Delete (line 49) | func (p *fauxSchema) Delete(table string) {
    method SetTable (line 53) | func (s *fauxSchema) SetTable(table *fizz.Table) {
    method TableInfo (line 57) | func (p *fauxSchema) TableInfo(table string) (*fizz.Table, error) {
  method Test_SQLite_CreateTable (line 64) | func (p *SQLiteSuite) Test_SQLite_CreateTable() {
  method Test_SQLite_CreateTable_UUID (line 100) | func (p *SQLiteSuite) Test_SQLite_CreateTable_UUID() {
  method Test_SQLite_CreateTables_WithCompositePrimaryKey (line 128) | func (p *SQLiteSuite) Test_SQLite_CreateTables_WithCompositePrimaryKey() {
  method Test_SQLite_DropTable (line 148) | func (p *SQLiteSuite) Test_SQLite_DropTable() {
  method Test_SQLite_RenameTable (line 157) | func (p *SQLiteSuite) Test_SQLite_RenameTable() {
  method Test_SQLite_RenameTable_NotEnoughValues (line 167) | func (p *SQLiteSuite) Test_SQLite_RenameTable_NotEnoughValues() {
  method Test_SQLite_ChangeColumn (line 174) | func (p *SQLiteSuite) Test_SQLite_ChangeColumn() {
  method Test_SQLite_AddColumn (line 200) | func (p *SQLiteSuite) Test_SQLite_AddColumn() {
  method Test_SQLite_DropColumn (line 211) | func (p *SQLiteSuite) Test_SQLite_DropColumn() {
  method Test_SQLite_RenameColumn (line 235) | func (p *SQLiteSuite) Test_SQLite_RenameColumn() {
  method Test_SQLite_AddIndex (line 252) | func (p *SQLiteSuite) Test_SQLite_AddIndex() {
  method Test_SQLite_AddIndex_Unique (line 270) | func (p *SQLiteSuite) Test_SQLite_AddIndex_Unique() {
  method Test_SQLite_AddIndex_MultiColumn (line 278) | func (p *SQLiteSuite) Test_SQLite_AddIndex_MultiColumn() {
  method Test_SQLite_AddIndex_CustomName (line 286) | func (p *SQLiteSuite) Test_SQLite_AddIndex_CustomName() {
  method Test_SQLite_DropIndex (line 294) | func (p *SQLiteSuite) Test_SQLite_DropIndex() {
  method Test_SQLite_RenameIndex (line 312) | func (p *SQLiteSuite) Test_SQLite_RenameIndex() {
  method Test_SQLite_DropColumnWithForeignKey (line 338) | func (p *SQLiteSuite) Test_SQLite_DropColumnWithForeignKey() {

FILE: translators/translators_test.go
  type CockroachSuite (line 10) | type CockroachSuite struct
  type PostgreSQLSuite (line 14) | type PostgreSQLSuite struct
  type MySQLSuite (line 18) | type MySQLSuite struct
  type MariaDBSuite (line 22) | type MariaDBSuite struct
  type MsSqlServerSQLSuite (line 26) | type MsSqlServerSQLSuite struct
  type SQLiteSuite (line 30) | type SQLiteSuite struct
  type SchemaSuite (line 34) | type SchemaSuite struct
  function TestSpecificSuites (line 38) | func TestSpecificSuites(t *testing.T) {
  function getEnv (line 57) | func getEnv(key, defaultValue string) string {

FILE: version.go
  constant Version (line 4) | Version = "v1.14.3"
Condensed preview — 223 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (555K chars).
[
  {
    "path": ".github/CODEOWNERS",
    "chars": 118,
    "preview": "translators/cockroach* @mclark4386\n# Default owner\n*                      @gobuffalo/core-managers @gobuffalo/database"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 96,
    "preview": "# These are supported funding model platforms\n\ngithub: [markbates, stanislas-m]\npatreon: buffalo"
  },
  {
    "path": ".github/workflows/standard-stale.yml",
    "chars": 204,
    "preview": "name: Standard Autocloser\n\non:\n  schedule:\n    - cron: \"30 1 * * *\"\n\njobs:\n  call-standard-autocloser:\n    name: Autoclo"
  },
  {
    "path": ".github/workflows/tests.yml",
    "chars": 7367,
    "preview": "name: Tests\non:\n  push:\n    branches:\n      - main\n  pull_request:\n\njobs:\n  mysql-tests:\n    name: MySQL tests - Go v${{"
  },
  {
    "path": ".gitignore",
    "chars": 324,
    "preview": "*.log\n.DS_Store\ndoc\ntmp\npkg\n*.gem\n*.pid\ncoverage\ncoverage.data\nbuild/*\n*.pbxuser\n*.mode1v3\n.svn\nprofile\n.console_history"
  },
  {
    "path": "LICENSE",
    "chars": 1077,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2019 Mark Bates\n\nPermission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "Makefile",
    "chars": 354,
    "preview": "TAGS ?= sqlite\nGO_BIN ?= go\n\ninstall:\n\t$(GO_BIN) install -tags ${TAGS} -v .\n\ntidy:\n\t$(GO_BIN) mod tidy\n\nbuild:\n\t$(GO_BIN"
  },
  {
    "path": "README.md",
    "chars": 5563,
    "preview": "# Fizz\n\n[![Actions Status](https://github.com/gobuffalo/fizz/workflows/Tests/badge.svg)](https://github.com/gobuffalo/fi"
  },
  {
    "path": "SHOULDERS.md",
    "chars": 2840,
    "preview": "# Fizz Stands on the Shoulders of Giants\n\nFizz does not try to reinvent the wheel! Instead, it uses the already great wh"
  },
  {
    "path": "bubbler.go",
    "chars": 1064,
    "preview": "package fizz\n\nimport (\n\t\"os\"\n\t\"strings\"\n\n\t\"github.com/gobuffalo/plush/v4\"\n)\n\ntype BubbleType int\n\ntype Bubbler struct {\n"
  },
  {
    "path": "bubbler_test.go",
    "chars": 580,
    "preview": "package fizz\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc Test_Exec(t *testi"
  },
  {
    "path": "columns.go",
    "chars": 2110,
    "preview": "package fizz\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// Deprecated: Fizz won't force you to have an ID f"
  },
  {
    "path": "columns_test.go",
    "chars": 1475,
    "preview": "package fizz_test\n\nimport (\n\t\"testing\"\n\n\t\"github.com/gobuffalo/fizz\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc Test"
  },
  {
    "path": "database.yml",
    "chars": 1055,
    "preview": "mysql:\n  dialect: \"mysql\"\n  database: \"pop_test\"\n  host: {{ envOr \"MYSQL_HOST\" \"127.0.0.1\"  }}\n  port: {{ envOr \"MYSQL_P"
  },
  {
    "path": "docker-compose.yml",
    "chars": 1366,
    "preview": "version: '2'\n\nservices:\n  mysql:\n    image: mysql:5.7\n    environment:\n      - MYSQL_ROOT_PASSWORD=root\n      - MYSQL_DA"
  },
  {
    "path": "fizz.go",
    "chars": 1185,
    "preview": "/*\nPackage fizz is a common DSL for writing SQL migrations\n*/\npackage fizz\n\nimport (\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"os/exec\""
  },
  {
    "path": "foreign_keys.go",
    "chars": 2302,
    "preview": "package fizz\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n)\n\ntype ForeignKeyRef struct {\n\tTable   string\n\tColumn"
  },
  {
    "path": "go.mod",
    "chars": 280,
    "preview": "module github.com/gobuffalo/fizz\n\ngo 1.16\n\nrequire (\n\tgithub.com/Masterminds/semver/v3 v3.1.1\n\tgithub.com/go-sql-driver/"
  },
  {
    "path": "go.sum",
    "chars": 6433,
    "preview": "github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc=\ngithub.com/Masterminds/semver/v3"
  },
  {
    "path": "index.go",
    "chars": 1526,
    "preview": "package fizz\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// Index is the index definition for fizz.\ntype Ind"
  },
  {
    "path": "raw_sql.go",
    "chars": 260,
    "preview": "package fizz\n\nimport (\n\t\"strings\"\n)\n\nfunc (f fizzer) RawSQL(sql string) error {\n\tif !strings.HasSuffix(sql, \";\") {\n\t\tsql"
  },
  {
    "path": "tables.go",
    "chars": 8751,
    "preview": "package fizz\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/gobuffalo/plush/v4\"\n)"
  },
  {
    "path": "tables_private_test.go",
    "chars": 416,
    "preview": "package fizz\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc Test_Table_HasColumnNoCache(t *testing"
  },
  {
    "path": "tables_test.go",
    "chars": 8467,
    "preview": "package fizz_test\n\nimport (\n\t\"testing\"\n\n\t\"github.com/gobuffalo/fizz\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc Test"
  },
  {
    "path": "test.sh",
    "chars": 1293,
    "preview": "#!/bin/bash\n\nset -e\n\n# NOTE: See also docker-compose.yml and database.yml to configure database\n# properties.\nexport MYS"
  },
  {
    "path": "testdata/e2e/cockroach_test.go",
    "chars": 351,
    "preview": "package e2e_test\n\nimport (\n\t\"github.com/gobuffalo/pop/v6\"\n\t\"github.com/stretchr/testify/suite\"\n)\n\ntype CockroachSuite st"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/down/0.sql",
    "chars": 316,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/down/1.sql",
    "chars": 586,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/down/10.sql",
    "chars": 1338,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/down/11.sql",
    "chars": 1338,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/down/12.sql",
    "chars": 1342,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/down/13.sql",
    "chars": 1350,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/down/14.sql",
    "chars": 1397,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/down/15.sql",
    "chars": 2735,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/down/2.sql",
    "chars": 1366,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/down/3.sql",
    "chars": 1265,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/down/4.sql",
    "chars": 1349,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/down/5.sql",
    "chars": 1349,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/down/6.sql",
    "chars": 1349,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/down/7.sql",
    "chars": 1349,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/down/8.sql",
    "chars": 1377,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/down/9.sql",
    "chars": 1369,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/up/0.sql",
    "chars": 586,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/up/1.sql",
    "chars": 1366,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/up/10.sql",
    "chars": 1338,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/up/11.sql",
    "chars": 1342,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/up/12.sql",
    "chars": 1350,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/up/13.sql",
    "chars": 1397,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/up/14.sql",
    "chars": 2565,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/up/15.sql",
    "chars": 2731,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/up/2.sql",
    "chars": 1265,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/up/3.sql",
    "chars": 1295,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/up/4.sql",
    "chars": 1295,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/up/5.sql",
    "chars": 1349,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/up/6.sql",
    "chars": 1349,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/up/7.sql",
    "chars": 1377,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/up/8.sql",
    "chars": 1369,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/cockroach/up/9.sql",
    "chars": 1338,
    "preview": "-- # 1 column\n-- # row 1\n-- ## 269\nCREATE TABLE public.schema_migration (\n\tversion VARCHAR(14) NOT NULL,\n\trowid INT8 NOT"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/down/0.sql",
    "chars": 1685,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/down/1.sql",
    "chars": 2159,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/down/10.sql",
    "chars": 2815,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/down/11.sql",
    "chars": 2815,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/down/12.sql",
    "chars": 2823,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/down/13.sql",
    "chars": 2829,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/down/14.sql",
    "chars": 2880,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/down/15.sql",
    "chars": 4591,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/down/2.sql",
    "chars": 2853,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/down/3.sql",
    "chars": 2766,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/down/4.sql",
    "chars": 2846,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/down/5.sql",
    "chars": 2846,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/down/6.sql",
    "chars": 2846,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/down/7.sql",
    "chars": 2846,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/down/8.sql",
    "chars": 2855,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/down/9.sql",
    "chars": 2851,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/up/0.sql",
    "chars": 2159,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/up/1.sql",
    "chars": 2853,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/up/10.sql",
    "chars": 2815,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/up/11.sql",
    "chars": 2823,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/up/12.sql",
    "chars": 2829,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/up/13.sql",
    "chars": 2880,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/up/14.sql",
    "chars": 4464,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/up/15.sql",
    "chars": 4595,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/up/2.sql",
    "chars": 2766,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/up/3.sql",
    "chars": 2801,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/up/4.sql",
    "chars": 2801,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/up/5.sql",
    "chars": 2846,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/up/6.sql",
    "chars": 2846,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/up/7.sql",
    "chars": 2855,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/up/8.sql",
    "chars": 2851,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/mysql/up/9.sql",
    "chars": 2815,
    "preview": "-- MySQL dump 10.13  Distrib 8.0.21, for osx10.15 (x86_64)\n--\n-- Host: 127.0.0.1    Database: pop_test\n-- --------------"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/down/0.sql",
    "chars": 935,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/down/1.sql",
    "chars": 1437,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/down/10.sql",
    "chars": 2567,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/down/11.sql",
    "chars": 2567,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/down/12.sql",
    "chars": 2579,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/down/13.sql",
    "chars": 2585,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/down/14.sql",
    "chars": 2622,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/down/15.sql",
    "chars": 4883,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/down/2.sql",
    "chars": 2590,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/down/3.sql",
    "chars": 2345,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/down/4.sql",
    "chars": 2563,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/down/5.sql",
    "chars": 2563,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/down/6.sql",
    "chars": 2563,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/down/7.sql",
    "chars": 2563,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/down/8.sql",
    "chars": 2604,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/down/9.sql",
    "chars": 2600,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/up/0.sql",
    "chars": 1437,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/up/1.sql",
    "chars": 2590,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/up/10.sql",
    "chars": 2567,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/up/11.sql",
    "chars": 2579,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/up/12.sql",
    "chars": 2585,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/up/13.sql",
    "chars": 2622,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/up/14.sql",
    "chars": 4660,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/up/15.sql",
    "chars": 4874,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/up/2.sql",
    "chars": 2345,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/up/3.sql",
    "chars": 2377,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/up/4.sql",
    "chars": 2377,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/up/5.sql",
    "chars": 2563,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/up/6.sql",
    "chars": 2563,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/up/7.sql",
    "chars": 2604,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/up/8.sql",
    "chars": 2600,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/postgres/up/9.sql",
    "chars": 2567,
    "preview": "--\n-- PostgreSQL database dump\n--\n\n-- Dumped from database version 9.6.19\n-- Dumped by pg_dump version 12.4\n\nSET stateme"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/down/0.sql",
    "chars": 159,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/down/1.sql",
    "chars": 306,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/down/10.sql",
    "chars": 681,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/down/11.sql",
    "chars": 687,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/down/12.sql",
    "chars": 689,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/down/13.sql",
    "chars": 691,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/down/14.sql",
    "chars": 723,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/down/15.sql",
    "chars": 1439,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/down/2.sql",
    "chars": 683,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/down/3.sql",
    "chars": 580,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/down/4.sql",
    "chars": 676,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/down/5.sql",
    "chars": 676,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/down/6.sql",
    "chars": 676,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/down/7.sql",
    "chars": 676,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/down/8.sql",
    "chars": 698,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/down/9.sql",
    "chars": 694,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/up/0.sql",
    "chars": 306,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/up/1.sql",
    "chars": 663,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/up/10.sql",
    "chars": 681,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/up/11.sql",
    "chars": 687,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/up/12.sql",
    "chars": 697,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/up/13.sql",
    "chars": 723,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/up/14.sql",
    "chars": 1276,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/up/15.sql",
    "chars": 1430,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/up/2.sql",
    "chars": 580,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/up/3.sql",
    "chars": 593,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/up/4.sql",
    "chars": 593,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/up/5.sql",
    "chars": 676,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/up/6.sql",
    "chars": 676,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/up/7.sql",
    "chars": 698,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/up/8.sql",
    "chars": 694,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/fixtures/sqlite3/up/9.sql",
    "chars": 681,
    "preview": "CREATE TABLE IF NOT EXISTS \"schema_migration\" (\n\"version\" TEXT NOT NULL\n);\nCREATE UNIQUE INDEX \"schema_migration_version"
  },
  {
    "path": "testdata/e2e/go.mod",
    "chars": 138,
    "preview": "module e2e\n\ngo 1.16\n\nrequire (\n\tgithub.com/gobuffalo/pop/v6 v6.0.4\n\tgithub.com/jackc/pgx/v4 v4.16.1\n\tgithub.com/stretchr"
  },
  {
    "path": "testdata/e2e/go.sum",
    "chars": 79428,
    "preview": "cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ncloud.google.com/go v0.34.0/go.mod h1"
  },
  {
    "path": "testdata/e2e/integration_test.go",
    "chars": 591,
    "preview": "// +build e2e\n\npackage e2e_test\n\nimport (\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/gobuffalo/pop/v6\"\n\t_ \"github.com/jackc/pgx/v4/s"
  },
  {
    "path": "testdata/e2e/migrations/20191100000001_users.down.fizz",
    "chars": 24,
    "preview": "drop_table(\"e2e_users\")\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000001_users.up.fizz",
    "chars": 127,
    "preview": "create_table(\"e2e_users\") {\n    t.Column(\"id\", \"uuid\", {\"primary\": true})\n    t.Column(\"username\", \"string\", {\"null\": tr"
  },
  {
    "path": "testdata/e2e/migrations/20191100000002_user_notes.down.fizz",
    "chars": 29,
    "preview": "drop_table(\"e2e_user_notes\")\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000002_user_notes.up.fizz",
    "chars": 482,
    "preview": "create_table(\"e2e_user_notes\") {\n    t.Column(\"id\", \"uuid\", {\"primary\": true})\n    t.Column(\"notes\", \"string\", {\"null\": "
  },
  {
    "path": "testdata/e2e/migrations/20191100000003_user_notes_drop_title.down.fizz",
    "chars": 154,
    "preview": "add_column(\"e2e_user_notes\", \"title\", \"string\", { \"default\": \"\", \"size\": 64 })\nadd_index(\"e2e_user_notes\", \"title\", {\"na"
  },
  {
    "path": "testdata/e2e/migrations/20191100000003_user_notes_drop_title.up.fizz",
    "chars": 39,
    "preview": "drop_column(\"e2e_user_notes\", \"title\")\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000004_user_notes_add_slug.down.fizz",
    "chars": 38,
    "preview": "drop_column(\"e2e_user_notes\", \"slug\")\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000004_user_notes_add_slug.up.fizz",
    "chars": 77,
    "preview": "add_column(\"e2e_user_notes\", \"slug\", \"string\", { \"null\": true, \"size\": 64 })\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000005_user_notes_add_slug.down.fizz",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "testdata/e2e/migrations/20191100000005_user_notes_add_slug.up.fizz",
    "chars": 42,
    "preview": "sql(\"UPDATE e2e_user_notes SET slug='';\")\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000006_user_notes_add_slug.down.fizz",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "testdata/e2e/migrations/20191100000006_user_notes_add_slug.up.fizz",
    "chars": 155,
    "preview": "change_column(\"e2e_user_notes\", \"slug\", \"string\", { \"size\": 64 })\nadd_index(\"e2e_user_notes\", \"slug\", { \"unique\":true, \""
  },
  {
    "path": "testdata/e2e/migrations/20191100000007_user_notes_rename.down.fizz",
    "chars": 48,
    "preview": "rename_table(\"e2e_user_posts\",\"e2e_user_notes\")\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000007_user_notes_rename.up.fizz",
    "chars": 49,
    "preview": "rename_table(\"e2e_user_notes\", \"e2e_user_posts\")\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000008_user_notes_rename_notes.down.fizz",
    "chars": 105,
    "preview": "drop_column(\"e2e_user_posts\", \"content\")\nadd_column(\"e2e_user_posts\", \"notes\", \"string\", {\"null\": true})\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000008_user_notes_rename_notes.up.fizz",
    "chars": 106,
    "preview": "add_column(\"e2e_user_posts\", \"content\", \"string\", {\"default\": \"\"})\ndrop_column(\"e2e_user_posts\", \"notes\")\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000009_users_username.down.fizz",
    "chars": 47,
    "preview": "rename_column(\"e2e_users\", \"name\", \"username\")\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000009_users_username.up.fizz",
    "chars": 47,
    "preview": "rename_column(\"e2e_users\", \"username\", \"name\")\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000010_users_drop_name.down.fizz",
    "chars": 58,
    "preview": "add_column(\"e2e_users\", \"name\", \"string\", {\"null\": true})\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000010_users_drop_name.up.fizz",
    "chars": 33,
    "preview": "drop_column(\"e2e_users\", \"name\")\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000011_user_posts_change_column.down.fizz",
    "chars": 66,
    "preview": "change_column(\"e2e_user_posts\", \"slug\", \"string\", { \"size\": 64 })\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000011_user_posts_change_column.up.fizz",
    "chars": 65,
    "preview": "change_column(\"e2e_user_posts\", \"slug\", \"string\", { \"size\": 32 })"
  },
  {
    "path": "testdata/e2e/migrations/20191100000012_rename_user.down.fizz",
    "chars": 41,
    "preview": "rename_table(\"e2e_authors\", \"e2e_users\")\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000012_rename_user.up.fizz",
    "chars": 41,
    "preview": "rename_table(\"e2e_users\", \"e2e_authors\")\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000013_rename_user_notes_user.down.fizz",
    "chars": 56,
    "preview": "rename_column(\"e2e_user_posts\", \"author_id\", \"user_id\")\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000013_rename_user_notes_user.up.fizz",
    "chars": 56,
    "preview": "rename_column(\"e2e_user_posts\", \"user_id\", \"author_id\")\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000014_rename_user_add_published.down.fizz",
    "chars": 96,
    "preview": "drop_column(\"e2e_user_posts\", \"published\")\nchange_column(\"e2e_user_posts\", \"author_id\", \"uuid\")\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000014_rename_user_add_published.up.fizz",
    "chars": 145,
    "preview": "add_column(\"e2e_user_posts\", \"published\", \"bool\", {\"default_raw\": \"FALSE\"})\nchange_column(\"e2e_user_posts\", \"author_id\","
  },
  {
    "path": "testdata/e2e/migrations/20191100000015_auto_fk.down.fizz",
    "chars": 73,
    "preview": "drop_table(\"e2e_token\")\ndrop_table(\"e2e_flow\")\ndrop_table(\"e2e_address\")\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000015_auto_fk.up.fizz",
    "chars": 748,
    "preview": "create_table(\"e2e_flow\") {\n    t.DisableTimestamps()\n\n    t.Column(\"id\", \"uuid\", {\"primary\": true})\n}\n\ncreate_table(\"e2e"
  },
  {
    "path": "testdata/e2e/migrations/20191100000016_rename_auto_fk.down.fizz",
    "chars": 50,
    "preview": "change_column(\"e2e_token\", \"e2e_flow_id\", \"uuid\")\n"
  },
  {
    "path": "testdata/e2e/migrations/20191100000016_rename_auto_fk.up.fizz",
    "chars": 243,
    "preview": "add_column(\"e2e_token\", \"expires_at\", \"timestamp\", { \"default\": \"2000-01-01 00:00:00\" })\nadd_column(\"e2e_token\", \"issued"
  },
  {
    "path": "testdata/e2e/migrator_test.go",
    "chars": 5685,
    "preview": "package e2e_test\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github."
  },
  {
    "path": "testdata/e2e/mysql_test.go",
    "chars": 336,
    "preview": "package e2e_test\n\nimport (\n\t\"github.com/gobuffalo/pop/v6\"\n\t\"github.com/stretchr/testify/suite\"\n)\n\ntype MySQLSuite struct"
  },
  {
    "path": "testdata/e2e/postgres_test.go",
    "chars": 353,
    "preview": "package e2e_test\n\nimport (\n\t\"github.com/gobuffalo/pop/v6\"\n\t\"github.com/stretchr/testify/suite\"\n)\n\ntype PostgreSQLSuite s"
  },
  {
    "path": "testdata/e2e/sqlite3_test.go",
    "chars": 561,
    "preview": "package e2e_test\n\nimport (\n\t\"io/ioutil\"\n\n\t\"github.com/gobuffalo/pop/v6\"\n\t\"github.com/stretchr/testify/suite\"\n)\n\ntype SQL"
  },
  {
    "path": "testdata/migrations/.gitignore",
    "chars": 10,
    "preview": "schema.sql"
  },
  {
    "path": "testdata/migrations/20160808213308_setup_tests.down.fizz",
    "chars": 181,
    "preview": "drop_table(\"users\")\ndrop_table(\"good_friends\")\ndrop_table(\"validatable_cars\")\ndrop_table(\"not_validatable_cars\")\ndrop_ta"
  },
  {
    "path": "testdata/migrations/20160808213308_setup_tests.up.fizz",
    "chars": 1159,
    "preview": "create_table(\"users\") {\n  t.Column(\"name\", \"string\")\n  t.Column(\"alive\", \"boolean\", {null: true})\n  t.Column(\"birth_date"
  },
  {
    "path": "testdata/migrations/20160808213310_setup_tests2.down.fizz",
    "chars": 131,
    "preview": "drop_table(\"songs\")\ndrop_table(\"course_codes\")\ndrop_table(\"courses\")\n{{ if eq .Dialect \"postgres\" }}\ndrop_table(\"cakes\")"
  },
  {
    "path": "testdata/migrations/20160808213310_setup_tests2.up.fizz",
    "chars": 1176,
    "preview": "create_table(\"songs\") {\n  t.Column(\"id\", \"uuid\", {primary: true})\n  t.Column(\"u_id\", \"int\", {null: true})\n  t.Column(\"ti"
  },
  {
    "path": "testdata/migrations/multiple/20180413210602_create_users.mysql.up.sql",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "testdata/migrations/multiple/20180413210602_create_users.postgres.up.sql",
    "chars": 0,
    "preview": ""
  }
]

// ... and 23 more files (download for full content)

About this extraction

This page contains the full source code of the gobuffalo/fizz GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 223 files (498.3 KB), approximately 176.3k tokens, and a symbol index with 945 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!