Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update dependency drizzle-kit to ^0.20.0 - autoclosed #15

Closed
wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jan 6, 2024

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
drizzle-kit ^0.19.13 -> ^0.20.0 age adoption passing confidence

Release Notes

drizzle-team/drizzle-kit-mirror (drizzle-kit)

v0.20.10: 0.20.10

Compare Source

  • 🐛 [BUG]: drizzle-kit generates incorrect foreign key references to a table from a different schema when using pgSchema #​636
  • 🐛 Introspect error #​277

v0.20.9: 0.20.9

Compare Source

  • Local Drizzle Studio proper support for Safari with mkcert
  • Remove wrangler from prod deps

v0.20.8: 0.20.8

Compare Source

Bug Fixes

  • Fixed introspect and push for PlanetScale. A newly added feature to PlanetScale was not functioning properly with the 'drizzle-kit introspect' and 'push' commands, failing to retrieve foreign keys from a database. This issue should now be resolved

New Drivers

🎉 Expo SQLite Driver is available

For starting with Expo SQLite Driver, you need to install expo-sqlite and drizzle-orm packages.

npm install drizzle-orm expo-sqlite@next

Then, you can use it like this:

import { drizzle } from "drizzle-orm/expo-sqlite";
import { openDatabaseSync } from "expo-sqlite/next";

const expoDb = openDatabaseSync("db.db");

const db = drizzle(expoDb);

await db.select().from(...)...

// or

db.select().from(...).then(...);

// or

db.select().from(...).all();

If you want to use Drizzle Migrations, you need to update babel and metro configuration files.

  1. Install babel-plugin-inline-import package.
npm install babel-plugin-inline-import
  1. Update babel.config.js and metro.config.js files.

babel.config.js

module.exports = function(api) {
  api.cache(true);

  return {
    presets: ['babel-preset-expo'],
+   plugins: [["inline-import", { "extensions": [".sql"] }]]
  };
};

metro.config.js

const { getDefaultConfig } = require('expo/metro-config');

/** @​type {import('expo/metro-config').MetroConfig} */
const config = getDefaultConfig(__dirname);

+config.resolver.sourceExts.push('sql');

module.exports = config;
  1. Create drizzle.config.ts file in your project root folder.
import type { Config } from 'drizzle-kit';

export default {
	schema: './db/schema.ts',
	out: './drizzle',
	driver: 'expo',
} satisfies Config;

After creating schema file and drizzle.config.ts file, you can generate migrations like this:

npx drizzle-kit generate:sqlite

Then you need to import migrations.js file in your App.tsx file from ./drizzle folder and use hook useMigrations or migrate function.

import { drizzle } from "drizzle-orm/expo-sqlite";
import { openDatabaseSync } from "expo-sqlite/next";
import { useMigrations } from 'drizzle-orm/expo-sqlite/migrator';
import migrations from './drizzle/migrations';

const expoDb = openDatabaseSync("db.db");

const db = drizzle(expoDb);

export default function App() {
    const { success, error } = useMigrations(db, migrations);

    if (error) {
        return (
            <View>
                <Text>Migration error: {error.message}</Text>
            </View>
        );
    }

    if (!success) {
        return (
            <View>
                <Text>Migration is in progress...</Text>
            </View>
        );
    }

    return ...your application component;
}

v0.20.7: 0.20.7

Compare Source

Bug fixes

  • BUG drizzle-kit introspect:mysql from Planetscale db returns wrong primary key #​216
  • BUG: v0.20.2 push:mysql error: there can be only one auto column and it must be defined as a key #​234
  • Fixed dropping all primary keys and creating them 1 more time

Improvements

  • Check names for indexes and notify if you have specified the same index names within the schema.
  • Verify that auto-increment can only be created for primary keys in MySQL

v0.20.6

Compare Source

v0.20.5

Compare Source

v0.20.4

Compare Source

v0.20.3

Compare Source

v0.20.2

Compare Source

v0.20.1

Compare Source

v0.20.0: 0.20.0

Compare Source

Drizzle ORM version 0.29.0 will require a minimum Drizzle Kit version of 0.20.0, and vice versa. Therefore, when upgrading to a newer version of Drizzle ORM, you will also need to upgrade Drizzle Kit. This may result in some breaking changes throughout the versions, especially if you need to upgrade Drizzle Kit and your Drizzle ORM version is older than <0.28.0

New Features

New way to define drizzle.config using defineConfig function

import { defineConfig } from 'drizzle-kit/utils'

export default defineConfig({
  schema: "./schema.ts",
  out: "./drizzle",
  driver: "..",
  dbCredentials: {
    // connection
  },
  verbose: true,
  strict: true,
})

Possibility to access Cloudflare D1 with Drizzle Studio using wrangler.toml file

You can now use Drizzle Studio with your D1 database. Please note that it may be slow at times because Drizzle Studio utilizes Wrangler CLI calls to perform data selection, updates, deletions, and insertions. The speed of these operations depends on the performance of Wrangler CLI calls.

To use Drizzle Studio with the D1 database, you need to provide the file path to your wrangler.toml file and specify the dbName you are using in Cloudflare D1

import { defineConfig } from 'drizzle-kit/utils'

export default defineConfig({
  schema: "./schema.ts",
  out: "./drizzle",
  driver: "d1",
  dbCredentials: {
    wranglerConfigPath: 'wrangler.toml',
    dbName: 'd1-test'
  },
  verbose: true,
  strict: true,
})

And then run drizzle-kit studio

Note: make sure you have wrangler cli installed globally or inside your project and you invoked wrangler login before running studio

Drizzle Studio is migrating to https://local.drizzle.studio/

Previously, Drizzle Studio used 127.0.0.1:4983 as the default host and port for the web page. Currently, Drizzle Studio will always be hosted on https://local.drizzle.studio/, connecting to the backend at 127.0.0.1:4983. You can modify the host and port for the backend server by using the --host and --port options in drizzle-kit studio.

local.drizzle.studio provides the ability to ship updates to the Drizzle Studio web UI immediately, eliminating the need for constant drizzle-kit upgrades

bigint unsigned support

This option is now available in the introspect, push, and generate commands.

primaryKeys and foreignKeys now can have custom names

This option is now available in the introspect, push, and generate commands.

Environment variables are now fetched automatically

As mentioned many times, you can finally skip fetching environment variables to use with the drizzle.config file. Drizzle Kit will handle this process automatically.

Drizzle Studio Updates

  • Refresh button for the view inside a table.
  • Possibility to choose schemas for Postgres. For MySQL and SQLite, public will be the default, and the only choice.

Improvements

  • remove libsql_wasm_func_table from sqlite introspect and push
  • Handle primaryKey columns order for composite constraints

Bug Fixes

  • Fix the case, when having turso or libsql driver user was seeing an error with no better-sqlite3 dependency
  • Add tableFilters to cli options in all push commands
  • Fix dropping unique indexes syntax for push and generate command

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

Copy link

cloudflare-workers-and-pages bot commented Jan 6, 2024

Deploying with  Cloudflare Pages  Cloudflare Pages

Latest commit: a457914
Status: ✅  Deploy successful!
Preview URL: https://e276c6b9.sstaa.pages.dev
Branch Preview URL: https://renovate-drizzle-kit-0-x.sstaa.pages.dev

View logs

@renovate renovate bot force-pushed the renovate/drizzle-kit-0.x branch from 8a94d95 to a457914 Compare January 30, 2024 09:27
@renovate renovate bot changed the title chore(deps): update dependency drizzle-kit to ^0.20.0 chore(deps): update dependency drizzle-kit to ^0.20.0 - autoclosed Jan 30, 2024
@renovate renovate bot closed this Jan 30, 2024
@renovate renovate bot deleted the renovate/drizzle-kit-0.x branch January 30, 2024 09:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants