Skip to content

Latest commit

 

History

History
607 lines (345 loc) · 34.4 KB

CHANGELOG.md

File metadata and controls

607 lines (345 loc) · 34.4 KB

@astrojs/db

0.14.2

Patch Changes

0.14.1

Patch Changes

0.14.0

Minor Changes

  • #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 server
    • ASTRO_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 on libsql://db-server.example.com.

    For more details, please visit the Astro DB documentation

Patch Changes

0.13.2

Patch Changes

0.13.1

Patch Changes

0.13.0

Minor Changes

  • #11360 a79a8b0 Thanks @ascorbic! - Changes how type generation works

    The 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" />

Patch Changes

0.12.0

Minor Changes

  • #11304 2e70741 Thanks @Fryuni! - Removes the AstroDbIntegration type

    Astro integration hooks can now be extended and as such @astrojs/db no longer needs to declare it's own integration type. Using AstroIntegration 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: {},
      });
    }

Patch Changes

0.11.7

Patch Changes

0.11.6

Patch Changes

0.11.5

Patch Changes

0.11.4

Patch Changes

  • #11032 b78e83f Thanks @itsMapleLeaf! - Adds support for multiple Astro Studio workspaces (aka “Teams”) to the Astro DB CLI

    Users 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 []:

0.11.3

Patch Changes

0.11.2

Patch Changes

  • #11027 eb1d9a4 Thanks @bholmesdev! - Fix isDbError() returning false for remote database errors. Astro will now return a LibsqlError in development and production.

0.11.1

Patch Changes

0.11.0

Minor Changes

  • #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.

0.10.7

Patch Changes

  • #10882 cf58d1e Thanks @delucis! - Improves the typing of the asDrizzleTable() utility

    Fixes 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! - Fixes ASTRO_DATABASE_FILE not correctly resolving relative paths (e.g. ASTRO_DATABASE_FILE=./api/database.db

0.10.6

Patch Changes

  • #10816 8e6eb62 Thanks @bholmesdev! - Add astro login support from online editors like Stackblitz and GitHub Codespaces

0.10.5

Patch Changes

0.10.4

Patch Changes

0.10.3

Patch Changes

0.10.2

Patch Changes

0.10.1

Patch Changes

0.10.0

Minor Changes

0.9.11

Patch Changes

0.9.10

Patch Changes

0.9.9

Patch Changes

0.9.8

Patch Changes

  • #10589 ed1031ba29af9a8a89ab386d772a228ba1414b4d Thanks @column.text(),! - 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:

    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 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.

0.9.7

Patch Changes

0.9.6

Patch Changes

0.9.5

Patch Changes

0.9.4

Patch Changes

0.9.3

Patch Changes

0.9.2

Patch Changes

0.9.1

Patch Changes

0.9.0

Minor Changes

Patch Changes

0.8.8

Patch Changes

0.8.7

Patch Changes

0.8.6

Patch Changes

0.8.5

Patch Changes

0.8.4

Patch Changes

0.8.3

Patch Changes

0.8.2

Patch Changes

0.8.1

Patch Changes

0.8.0

Minor Changes

Patch Changes

0.7.2

Patch Changes

0.7.1

Patch Changes

0.7.0

Minor Changes

0.7.0

Breaking Changes

  • The seed file now requires an export default async function() wrapper
  • defineDB has been renamed to defineDb

Minor Changes

  • #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! - Introduce astro build --remote to build with a remote database connection. Running astro 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 providing astro:db configuration and seed files, using the new astro:db:setup hook.

    To get TypeScript support for the astro:db:setup hook, wrap your integration object in the defineDbIntegration() 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 additional astro: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 the asDrizzleTable() 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 with db.batch(). This includes an internal bump to Drizzle v0.29.

Patch Changes

0.6.5

Patch Changes

0.6.4

Patch Changes

0.6.3

Patch Changes

0.6.2

Patch Changes

0.6.1

Patch Changes

0.6.0

Minor Changes

Patch Changes

0.5.0

Minor Changes

0.4.1

Patch Changes

0.4.0

Minor Changes