mirror of
https://github.com/withastro/astro.git
synced 2025-03-03 22:57:08 -05:00
* feat: add indexes array config with name gen * fix: add _idx suffix, remove name from output * feat(test): new index config * chore: remove unused type * chore: changeset * chore: add sort() for consistent names * feat(test): consistent column ordering * feat(test): ensure no queries when migrating legacy to new
31 lines
969 B
Markdown
31 lines
969 B
Markdown
---
|
|
"@astrojs/db": patch
|
|
---
|
|
|
|
Update the table indexes configuration to allow generated index names. The `indexes` object syntax is now deprecated in favor of an array.
|
|
|
|
## Migration
|
|
|
|
You can update your `indexes` configuration object to an array like so:
|
|
|
|
```diff
|
|
import { defineDb, defineTable, column } from 'astro:db';
|
|
|
|
const Comment = defineTable({
|
|
columns: {
|
|
postId: column.number(),
|
|
author: column.text(),
|
|
body: column.text(),
|
|
},
|
|
- indexes: {
|
|
- postIdIdx: { on: 'postId' },
|
|
- authorPostIdIdx: { on: ['author, postId'], unique: true },
|
|
- },
|
|
+ indexes: [
|
|
+ { on: 'postId' /* 'name' is optional */ },
|
|
+ { on: ['author, postId'], unique: true },
|
|
+ ]
|
|
})
|
|
```
|
|
|
|
This example will generate indexes with the names `Comment_postId_idx` and `Comment_author_postId_idx`, respectively. You can specify a name manually by adding the `name` attribute to a given object. This name will be **global,** so ensure index names do not conflict between tables.
|