-
#11435
f32a7a8
Thanks @haivuw! - Fixes a bug whereastro:db:seed
couldn't access to the environment variableASTRO_DATABASE_FILE
-
Updated dependencies []:
- @astrojs/[email protected]
-
#12118
f47b347
Thanks @Namchee! - Removes thestrip-ansi
dependency in favor of the native Node API -
#12089
6e06e6e
Thanks @Fryuni! - Fixes initial schema push for local file and in-memory libSQL DB -
#12089
6e06e6e
Thanks @Fryuni! - Fixes relative local libSQL db URL -
Updated dependencies []:
- @astrojs/[email protected]
-
#11894
cc820c5
Thanks @Fryuni! - Fixes mixed environment variable for app token when using DB commands with libSQL remote. -
Updated dependencies []:
- @astrojs/[email protected]
-
#11385
d6611e8
Thanks @Fryuni! - Adds support for connecting Astro DB to any remote LibSQL server. This allows Astro DB to be used with self-hosting and air-gapped deployments.To connect Astro DB to a remote LibSQL server instead of Studio, set the following environment variables:
ASTRO_DB_REMOTE_URL
: the connection URL to your LibSQL serverASTRO_DB_APP_TOKEN
: the auth token to your LibSQL server
Details of the LibSQL connection can be configured using the connection URL. For example,
memory:?syncUrl=libsql%3A%2F%2Fdb-server.example.com
would create an in-memory embedded replica for the LibSQL DB onlibsql://db-server.example.com
.For more details, please visit the Astro DB documentation
- Updated dependencies []:
- @astrojs/[email protected]
-
#11744
b677429
Thanks @bluwy! - Disables the WebSocket server when creating a Vite server for loading config files -
Updated dependencies []:
- @astrojs/[email protected]
-
#11733
391324d
Thanks @bluwy! - Reverts back toyargs-parser
package for CLI argument parsing -
Updated dependencies []:
- @astrojs/[email protected]
-
#11360
a79a8b0
Thanks @ascorbic! - Changes how type generation worksThe generated
.d.ts
file is now at a new location:- .astro/db-types.d.ts + .astro/integrations/astro_db/db.d.ts
The following line can now be removed from
src/env.d.ts
:- /// <reference path="../.astro/db-types.d.ts" />
-
#11645
849e4c6
Thanks @bluwy! - Refactors internally to usenode:util
parseArgs
instead ofyargs-parser
-
Updated dependencies []:
- @astrojs/[email protected]
-
#11304
2e70741
Thanks @Fryuni! - Removes theAstroDbIntegration
typeAstro integration hooks can now be extended and as such
@astrojs/db
no longer needs to declare it's own integration type. UsingAstroIntegration
will have the same type.If you were using the
AstroDbIntegration
type, apply this change to your integration code:- import { defineDbIntegration, type AstroDbIntegration } from '@astrojs/db/utils'; + import { defineDbIntegration } from '@astrojs/db/utils'; import type { AstroIntegration } from 'astro'; - export default (): AstroDbIntegration => { + export default (): AstroIntegration => { return defineDbIntegration({ name: 'your-integration', hooks: {}, }); }
- Updated dependencies []:
- @astrojs/[email protected]
-
#11331
f1b78a4
Thanks @bluwy! - Relaxes exports condition to allow importing ESM from CJS -
Updated dependencies [
f1b78a4
]:- @astrojs/[email protected]
-
#11262
9b03023
Thanks @nezouse! - Import typeDatabase
from correct file -
Updated dependencies []:
- @astrojs/[email protected]
-
#11216
29463df
Thanks @OliverSpeir! - Export typeDatabase
from@astrojs/db/runtime
-
Updated dependencies []:
- @astrojs/[email protected]
-
#11032
b78e83f
Thanks @itsMapleLeaf! - Adds support for multiple Astro Studio workspaces (aka “Teams”) to the Astro DB CLIUsers who are members of a team workspace in Astro Studio can now choose between those and their personal workspace when runnning
astro db link
. -
#11091
e14ce57
Thanks @matthewp! - Fix inconsistent result type using raw SQL -
Updated dependencies []:
- @astrojs/[email protected]
-
#11070
1fec4a6
Thanks @Princesseuh! - Fixes some error messages not using the proper command to login or sync the project -
#11037
9332bb1
Thanks @Princesseuh! - Internal refactor, this change should have no visible effect -
Updated dependencies [
9332bb1
]:- @astrojs/[email protected]
- #11027
eb1d9a4
Thanks @bholmesdev! - FixisDbError()
returningfalse
for remote database errors. Astro will now return aLibsqlError
in development and production.
- #10919
44bafa9
Thanks @bholmesdev! - - Fix duplicate table recreations when you start your dev server.- Remove eager re-seeding when updating your seed file in development. Seeding still runs on dev server startup for SQLite inspector tools.
-
#10882
cf58d1e
Thanks @delucis! - Improves the typing of theasDrizzleTable()
utilityFixes a type error when passing the output of
defineTable()
to the utility and returns a more detailed type inferred from the columns of the passed table config. -
#10918
ca605f4
Thanks @matthewp! - Provide a better error message when app token is missing in CI -
#10925
a0c77fc
Thanks @Princesseuh! - FixesASTRO_DATABASE_FILE
not correctly resolving relative paths (e.g.ASTRO_DATABASE_FILE=./api/database.db
- #10816
8e6eb62
Thanks @bholmesdev! - Addastro login
support from online editors like Stackblitz and GitHub Codespaces
- #10789
d4c91cb10924a0627a9e9a80bc549b3c82d043e6
Thanks @NickDubelman! - Expose the Drizzlealias
utility fromastro:db
to enable self-joins on a table.
- #10764
d1080ea81de0db1d1aed97a65c490766c17ab312
Thanks @delucis! - Improvespackage.json
metadata fields
- #10720
2d2ff58bb90e09248afc04cc8e2016ef983a7f07
Thanks @matthewp! - Fix db seeding when srcDir is root
-
#10681
4bf8bd3848a6f3461f0186854588a8e2f90f4dbc
Thanks @matthewp! - Prevent errors in finding workspaceId from interrupting link prompts -
#10600
28e7535e5c7a8234049bd187cac88c7fabf15f9c
Thanks @matthewp! - Provide better messaging when renaming a table
- #10677
1662aa8a850ff4f860a80c2f33a8b33bcc7aee12
Thanks @matthewp! - Fix compatibility of @astrojs/db with Cloudflare
- #10638
f395ebcc08279515f8d53bb82edeee288d8579db
Thanks @bholmesdev! - Rename internal import fromruntime/config
toruntime/virtual
- #10655
b1eda3dc5c33c1c6d50d5ee8a2a08d34851dc253
Thanks @matthewp! - Pass through appToken on static sites with Astro DB
- #10646
713f99e849b26edb831ea6527b7103ad7a6b200f
Thanks @lilnasy! - Fixes an issue astro:db could not be used on serverless platforms.
-
#10599
5a7733dde52d439402404d5207a2b1d897c4e025
Thanks @bholmesdev! - Seed database on dev server startup, and log whenever the seed file is reloaded. -
#10636
504d15d77291f0fe36aa9fecc22f276b734f83cb
Thanks @bholmesdev! - Detailed error messages for remote database exceptions. -
#10635
17badaf55c79cec460c74f4da58bf188eedef7e3
Thanks @matthewp! - Give proper error when seed missing default export -
#10631
157392ee44db08de0d3c01222644dae0a904044d
Thanks @matthewp! - Make ASTRO_DATABASE_FILE work with file paths
-
#10589
ed1031ba29af9a8a89ab386d772a228ba1414b4d
Thanks @column.text(),! - Update the table indexes configuration to allow generated index names. Theindexes
object syntax is now deprecated in favor of an array.You can update your
indexes
configuration object to an array like so:import { defineDb, defineTable, column } from 'astro:db'; const Comment = defineTable({ columns: { postId: column.number(), 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
andComment_author_postId_idx
, respectively. You can specify a name manually by adding thename
attribute to a given object. This name will be global, so ensure index names do not conflict between tables.
-
#10587
62a1d6df6916e08cb25d51814dfad352bc4cce75
Thanks @matthewp! - Conditionally drop table with --force-reset -
#10460
713abb2998bc179443a476f6274432b2fc7d8434
Thanks @bholmesdev! - Remove legacy Astro DB internals using the "collections" naming convention instead of "tables."
-
#10579
f5df12cfebba1abdef50faa7a5549b545f0b3f8c
Thanks @matthewp! - Provide guidance when --remote is missingWhen running the build
astro build
without the--remote
, either require aDATABASE_FILE
variable be defined, which means you are going expert-mode and having your own database, or error suggesting to use the--remote
flag. -
#10568
764d67fc3f399d62b6a97a2ee698dca03b9f0557
Thanks @matthewp! - Prevent runtime from importing core code
- #10566
b5a80405b93a166f6f019209152b860ffe2f73ef
Thanks @bholmesdev! - Fixdb.run()
type signature in production.
- #10533
6576f5d458ee8cc872210f3a7ae629439546e361
Thanks @matthewp! - Ensure ASTRO_STUDIO_APP_TOKEN is found at runtime
- #10520
30ce9a0c47a4653a9e9619380a6514459563cf92
Thanks @matthewp! - Fix accessing remote database URL
- #10506
980020c5e0935a2e0e177164d02f5e49f0a9ab4b
Thanks @matthewp! - Ensure --force-reset drops previous tables
- #10498
f0fc78c8734b2bcf39078c782998e60b49ecc146
Thanks @bholmesdev! - ExposeisDbError()
utility to handle database exceptions when querying.
- #10479
ad57a02c330b544770ab853fe0521eb784421016
Thanks @bholmesdev! - Expose Drizzle aggregation helpers includingcount()
from theastro:db
module.
-
#10501
48310512601e0c0b2886759e4d81b4091042eb8f
Thanks @bholmesdev! - Removedb.transaction()
from type definitions until it is supported by our remote database adapter. -
#10497
2fc7231df28e5a3425ee47b871ba3766e0856bd8
Thanks @matthewp! - Remove embedded app token from CI -
#10405
2ebcf94d0af5ac789c61b4190dea0ad6a402a6ea
Thanks @43081j! - Added github-slugger as a direct dependency
- #10477
124cdd64f20d86f936853f3cf834fde8cd6abcb7
Thanks @FredKSchott! - Remove redundant wait time on token creation
-
#10435
37a485b4d1d4b7e60eee2067ffd86d0eea4f03e8
Thanks @matthewp! - Fetch new app token when previous has expired -
#10457
219c49473fe44d8df2b69444b2dce0f5bc971655
Thanks @bholmesdev! - Fix type error in db/seed.ts file before type generation is run.
-
#10439
0989cd3284281e3e471a92ac116e14e65f59f8a5
Thanks @bholmesdev! - Add success and error logs toastro db execute
command -
#10438
5b48cc0fc8383b0659a595afd3a6ee28b28779c3
Thanks @bholmesdev! - Generate Astro DB types when runningastro sync
.
-
#10445
098623c2616124bcc689e2409564dfda187f6688
Thanks @matthewp! - Prefer getting the app token from the runtime env -
#10441
5166e9715a1ea18eb5c737ccf834c2ff446d253c
Thanks @bholmesdev! - Remove duplicate astro:db log during type generation
- #10443
238f047b9d1ebc407f53d61ee61574b380a76ac9
Thanks @lilnasy! - Fixes an issue whereastro:db
could not be used in serverless environments.
-
#10431
1076864cc4aa4b4dad570bbab9907996642cdd1f
Thanks @FredKSchott! - Add wait time for the db token to propagate -
#10432
4e24628aacc556515b27d0c04361df1526ae778f
Thanks @FredKSchott! - Add all regions to the link command
-
#10409
96c8bca19aa477318b5eb48af12b260a6f173e25
Thanks @lilnasy! - Fixes an issue where one table schema could not reference text fields of another table schema. -
#10428
189ec47c1e3232d8b4db42035ddd44ea862ecfca
Thanks @FredKSchott! - Fix an issue where short-lived tokens were not being authorized -
#10420
2db25c05a467f2ffd6ebff5eb82076449fa9d72f
Thanks @Princesseuh! - Fixes some situations where failing requests would not error properly
- #10401
a084d8cec66e4fb1952bd0dfe293712401f2f463
Thanks @bholmesdev! - Fix astro:db configuration types returningany
- #10395
a49892349ecee2b5d3184e59ac0ab54368481672
Thanks @matthewp! - Sets new Astro Studio production URL
-
#10396
41ca94e5136a80a58d000f3eb87029442599a4a3
Thanks @bholmesdev! - Remove risk of data loss when pushing an out-of-date table schema. -
#10374
f76dcb769f6869acb96b2a77898926f109f54a33
Thanks @itsMapleLeaf! - Expose DB utility types from @astrojs/db/types
-
#10391
9667ee990ca2a02a146e442f2494981df4c88b52
Thanks @bholmesdev! - Remove @astrojs/runtime/config suggestion for astro:db configuration helpers. -
#10385
38abae47b57af481a8dcdf2393317de6df46920a
Thanks @delucis! - Fixes support for integrations configuringastro:db
and for projects that useastro:db
but do not include a seed file. -
#10381
8cceab587d681d90842184904182833117687750
Thanks @delucis! - Fixes builds for projects using integration seed files -
#10384
cd5e8d4b9309e43f5bf884a0014b8a5769d816e0
Thanks @matthewp! - Upgrades the@libsql/client
dependency to fix the use ofdb.batch
in StackBlitz -
#10387
8a23ee530cd1d7d7b4e93e9e72f4e06d1fc3d845
Thanks @FredKSchott! - handle success=false response on api endpoints -
#10390
236cdbb611587692d3c781850cb949604677ef82
Thanks @bholmesdev! - Adds--help
reference for new db and studio CLI commands
- #10378
41dca1e413c2f1e38f0326bd6241ccbf9b8ee0e4
Thanks @FredKSchott! - Handle new schema API response format
- The seed file now requires an
export default async function()
wrapper defineDB
has been renamed todefineDb
-
#10334
bad9b583a267e239ba52237d45a89063ea277200
Thanks @delucis! - Changes the seed file format to require exporting a default function instead of running seed code at the top level.To migrate a seed file, wrap your existing code in a default function export:
// db/seed.ts import { db, Table } from 'astro:db'; + export default async function() { await db.insert(Table).values({ foo: 'bar' }); + }
-
#10352
06fe94e29de97290cb41c4f862ab88f48cda3d4a
Thanks @bholmesdev! - Introduceastro build --remote
to build with a remote database connection. Runningastro build
plain will use a local database file, and--remote
will authenticate with a studio app token. -
#10321
2e4958c8a75dc9836efcc7dd272fb8ed4187c000
Thanks @delucis! - Adds support for integrations providingastro:db
configuration and seed files, using the newastro:db:setup
hook.To get TypeScript support for the
astro:db:setup
hook, wrap your integration object in thedefineDbIntegration()
utility:import { defineDbIntegration } from '@astrojs/db/utils'; export default function MyDbIntegration() { return defineDbIntegration({ name: 'my-astro-db-powered-integration', hooks: { 'astro:db:setup': ({ extendDb }) => { extendDb({ configEntrypoint: '@astronaut/my-package/config', seedEntrypoint: '@astronaut/my-package/seed', }); }, }, }); }
Use the
extendDb
method to register additionalastro:db
config and seed files.Integration config and seed files follow the same format as their user-defined equivalents. However, often while working on integrations, you may not be able to benefit from Astro’s generated table types exported from
astro:db
. For full type safety and autocompletion support, use theasDrizzleTable()
utility to wrap your table definitions in the seed file.// config.ts import { defineTable, column } from 'astro:db'; export const Pets = defineTable({ columns: { name: column.text(), age: column.number(), }, });
// seed.ts import { asDrizzleTable } from '@astrojs/db/utils'; import { db } from 'astro:db'; import { Pets } from './config'; export default async function () { // Convert the Pets table into a format ready for querying. const typeSafePets = asDrizzleTable('Pets', Pets); await db.insert(typeSafePets).values([ { name: 'Palomita', age: 7 }, { name: 'Pan', age: 3.5 }, ]); }
-
#10361
988aad6705e5ee129cf3a28da80aca4229052bb3
Thanks @bholmesdev! - Add support for batch queries withdb.batch()
. This includes an internal bump to Drizzle v0.29.
-
#10357
5a9dab286f3f436f3dce18f3b13a2cd9b774a8ef
Thanks @bholmesdev! - Fix runtime export error when building with the node adapter -
#10348
9f422e9bd338c1f6deee8f727143bf801a6b1651
Thanks @matthewp! - RenameexperimentalVersion
toversion
-
#10364
3f27e096283b6b477c4a66d0a7df52feaa3f4233
Thanks @delucis! - Renames the Astro DBdefineDB()
helper todefineDb()
- #10350
393ad9b2aa9fde45eb14b8b01ff3526063772452
Thanks @Fryuni! - Includes./virtual.d.ts
file that was previously unpublished
- #10342
a2e9b2b936666b2a4779feb00dcb8ff0ab82c2ec
Thanks @matthewp! - Fixes @astrojs/db loading TS in the fixtures
- #10340
a60861c960bf3d24af9b2784b5b333855c968731
Thanks @bholmesdev! - Ensureastro:db
types exist in yourdb/config.ts
before running type generation.
- #10336
f2e60a96754ed1d86001fe4d5d3a0c0ef657408d
Thanks @FredKSchott! - Add back confirmation handling on verify and push
- #10315
78ddfadbf9cc5a12a9bd25eab64ec8ec1bd8617d
Thanks @bholmesdev! - Fix type definitions forastro:db
- #10312
93ec9e264a1dbdff61233289418612f558508135
Thanks @FredKSchott! - Revamp migrations system
- #10313
cb00c8b6927242369debe92ad2bc7e791616696a
Thanks @FredKSchott! - Fix bad package.json types
- #10280
3488be9b59d1cb65325b0e087c33bcd74aaa4926
Thanks @bholmesdev! - Finalize db API to a shared db/ directory.
-
#10223
aa45eb9fa60b254e859750d9cef671daa605b213
Thanks @bholmesdev! - Fix: use correct remote database url during production builds -
#10207
5d4ff093a21c072553b2cac6c799d3efa3cb84c0
Thanks @bholmesdev! - Improve error messaging when seeding invalid data.
f85ace2e66370e522b5a4e9b54c578a02298fe0e
Thanks @matthewp! - @astrojs/db prerelease