Skip to content
This repository has been archived by the owner on Nov 6, 2024. It is now read-only.

Commit

Permalink
Merge pull request #85 from drizzle-team/AndriiSherman-patch-1
Browse files Browse the repository at this point in the history
Update readme.md
  • Loading branch information
AndriiSherman authored Jun 17, 2023
2 parents febd37e + 6abddee commit edfae9e
Showing 1 changed file with 0 additions and 153 deletions.
153 changes: 0 additions & 153 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,156 +77,3 @@ Running with CLI options
```shell
npm run generate
```

### Configuration

Instead of passing arguments to the CLI commands, you can also create a `drizzle.config.json` configuration file:

```json
{
"out": "./migrations-folder",
"schema": "./src/db",
"breakpoints": false
}
```

* `out` - path to the output directory where migrations will be saved,
* `schema` - path to TypeScript schema file or folder with multiple schema files,
* `breakpoints` - whether to execute each statement in the migrations individually. Set to `true` if you are using SQLite or MySQL (as they don't support multiple DDL statements in a transaction).

---

## Upgrading to 0.17.0

Before running any new migrations `drizzle-kit` will ask you to upgrade first

Migration file structure < 0.17.0

```plaintext
📦 <project root>
└ 📂 migrations
└ 📂 20221207174503
├ 📜 migration.sql
├ 📜 snapshot.json
└ 📂 20230101104503
├ 📜 migration.sql
├ 📜 snapshot.json
```

Migration file structure >= 0.17.0

```plaintext
📦 <project root>
└ 📂 migrations
└ 📂 meta
├ 📜 _journal.json
├ 📜 0000_snapshot.json
├ 📜 0001_snapshot.json
└ 📜 0000_icy_stranger.sql
└ 📜 0001_strange_avengers.sql
```

To easily migrate from previous folder structure to new you need to run `up` command in drizzle-kit. It's a great helper to upgrade your migrations to new format on each drizzle kit major update

![](media/up_mysql.gif)
---

## List of commands

### Generate SQL migrations based on current .ts schema

---

**`$ drizzle-kit generate:pg`** \
**`$ drizzle-kit generate:mysql`** \
**`$ drizzle-kit generate:sqlite`**

`--config` [optional default=drizzle.config.json] config file path\
`--schema` path to typescript schema file or folder with multiple schema files\
`--out` [optional default=drizzle/] migrations folder\
`--breakpoints` [optional default=false] whether to execute each statement in the migrations individually\

```shell
$ drizzle-kit generate:pg
## runs generate command with drizzle.config.json

$ drizzle-kit generate:pg --config=./custom.config.json
## runs generate command with custom.config.json

$ drizzle-kit generate:pg --schema=./src/schema.ts
## runs generate command and outputs results to ./drizzle

$ drizzle-kit generate:pg --schema=./src/schema.ts --out=./migrations/
## runs generate command and outputs results to ./migration
```

**Generate an empty SQL migration with `--custom`**

```shell
$ drizzle-kit generate:pg --custom
## runs generate command and outputs an empty migration for custom SQL
```

### Introspect existing database and generate typescript schema

---

**`$ drizzle-kit introspect:pg`** \
**`$ drizzle-kit introspect:mysql`**

```shell
drizzle-kit introspect:pg --out=migrations/ --connectionString=postgresql://user:pass@host:port/db_name

drizzle-kit introspect:pg --out=migrations/ --host=0.0.0.0 --port=5432 --user=postgres --password=pass --database=db_name --ssl
```

![](media/introspect_mysql.gif)

### Update stale snapshots

---

**`$ drizzle-kit up:pg`** \
**`$ drizzle-kit up:mysql`** \
**`$ drizzle-kit up:sqlite`**

`--out` [optional] migrations folder\
`--config` [optional default=drizzle.config.json] config file path

```shell
## migrations folder is taken from drizzle.config.json
drizzle-kit up:mysql

drizzle-kit up:mysql --out=migrations/
```

![](media/up_mysql.gif)

### Drop migration

---

**`$ drizzle-kit drop`**

`--out` [optional] migrations folder\
`--config` [optional default=drizzle.config.json] config file path

![](media/drop.gif)

### Migrations collisions check

---

**`$ drizzle-kit check:pg`** \
**`$ drizzle-kit check:mysql`** \
**`$ drizzle-kit check:sqlite`**

`--out` [optional] migration folder\
`--config` [optional default=drizzle.config.json] config file path

```shell
## migrations folder is taken from drizzle.config.json
drizzle-kit check:pg

drizzle-kit check:pg --out=migrations/
```

0 comments on commit edfae9e

Please sign in to comment.