Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
ecd9b57
chore: clone mysql-core as googlesql
gabrielcipriano Feb 26, 2025
2e78ca4
chore: update paths
gabrielcipriano Feb 26, 2025
73a1c46
chore: full renaming
gabrielcipriano Feb 26, 2025
905252f
chore: add TODOs
gabrielcipriano Feb 26, 2025
0bee8b9
chore: lint fix
gabrielcipriano Feb 26, 2025
bd927cd
tests: add some drizzle-orm tests
gabrielcipriano Feb 28, 2025
5a35e7e
feat: spanner pseudo-driver
gabrielcipriano Feb 28, 2025
4578615
Merge pull request #1 from dotcom-dev/feat/googlesql-dialect-setup
gabrielcipriano Mar 3, 2025
ae9e13d
feat: drizzle-kit googlesql setup (#2)
gabrielcipriano Mar 4, 2025
11c8982
Feat/googlesql dialect basic (#3)
gabrielcipriano Mar 10, 2025
bdf9bd4
chore: lint
gabrielcipriano Mar 13, 2025
7c1204e
Feat/googlesql serialization (#4)
gabrielcipriano Mar 13, 2025
677e7ed
Feat: googlesql generator + generate command + tests (#5)
gabrielcipriano Mar 14, 2025
b9964e1
chore: starting point
gabrielcipriano Mar 14, 2025
bda1988
chore: preview workflow as internal release candidate
gabrielcipriano Mar 14, 2025
80e7993
chore:lint
gabrielcipriano Mar 14, 2025
0a7281c
Merge branch 'spanner-googlesql-dialect' into preview/spanner-googlesql
gabrielcipriano Mar 14, 2025
2a8a98c
Merge remote-tracking branch 'origin/main' into preview/spanner-googl…
gabrielcipriano Mar 14, 2025
7c3b681
chore: fix preview release workflow
gabrielcipriano Mar 14, 2025
3c844a5
something off with lint command?
gabrielcipriano Mar 14, 2025
3349d02
try again, I guess
gabrielcipriano Mar 14, 2025
415448a
chore: rm access restricted
gabrielcipriano Mar 14, 2025
54b6184
it already feels like bogoprogramming
gabrielcipriano Mar 14, 2025
ce9dea6
.
gabrielcipriano Mar 14, 2025
b91e79a
chore: try to release only orm
gabrielcipriano Mar 17, 2025
1e7d59c
chore: ammend turbo
gabrielcipriano Mar 17, 2025
dc792f6
chore: use publish cmd
gabrielcipriano Mar 17, 2025
22836ec
chore: rm gh release
gabrielcipriano Mar 17, 2025
862bcad
chore: override drizzle-orm to @dotcom-dev/drizzle-orm
gabrielcipriano Mar 17, 2025
37f1121
chore: enable drizzle-kit package
gabrielcipriano Mar 17, 2025
b6bb81b
chore: update package name
gabrielcipriano Mar 17, 2025
fb1f199
feat: prepareGoogleSqlMigrationSnapshot
gabrielcipriano Mar 17, 2025
afcf280
Merge branch 'spanner-googlesql-dialect' into preview/spanner-googlesql
gabrielcipriano Mar 17, 2025
fed3612
chore: add tem-type and rm mysql dep from spanner driver
gabrielcipriano Mar 17, 2025
0ef8e7d
Merge branch 'spanner-googlesql-dialect' into preview/spanner-googlesql
gabrielcipriano Mar 17, 2025
bfbc8a5
fix wrong imports
gabrielcipriano Mar 18, 2025
473cc24
Merge branch 'spanner-googlesql-dialect' into preview/spanner-googlesql
gabrielcipriano Mar 18, 2025
fbdef8b
chore: fix imports
gabrielcipriano Mar 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/release-feature-branch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches-ignore:
- main
- preview/spanner-googlesql
pull_request: {}

jobs:
Expand Down Expand Up @@ -158,7 +159,7 @@ jobs:
if [[ ${{ github.event_name }} != "push" && "${{ github.event.pull_request.head.repo.full_name }}" != "${{ github.repository }}" ]]; then
export SKIP_EXTERNAL_DB_TESTS=1
fi
if [[ "${{ matrix.package }}" == "drizzle-orm" ]]; then
if [[ "${{ matrix.package }}" == "@dotcom-dev/drizzle-orm" ]]; then
pnpm test --filter ${{ matrix.package }} --filter integration-tests
else
pnpm test --filter ${{ matrix.package }}
Expand Down
147 changes: 26 additions & 121 deletions .github/workflows/release-preview.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Internal Release (preview)
name: Internal Release (RC/next)

on: workflow_dispatch

Expand All @@ -14,11 +14,11 @@ jobs:
package:
- drizzle-orm
- drizzle-kit
- drizzle-zod
- drizzle-seed
- drizzle-typebox
- drizzle-valibot
- eslint-plugin-drizzle
# - drizzle-zod
# - drizzle-seed
# - drizzle-typebox
# - drizzle-valibot
# - eslint-plugin-drizzle
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -58,17 +58,18 @@ jobs:
shell: bash
working-directory: ${{ matrix.package }}
run: |
# Prepare package name with scope for GitHub registry
package_name="@dotcom-dev/${{ matrix.package }}"
# Get original package name from package.json
package_name="$(jq -r .name package.json)"

# Get version from package.json and create RC version
original_version="$(jq -r .version package.json)"
rc_version="${original_version}-rc.$(date +'%Y%m%d%H%M%S')"


echo "GitHub registry package name: $package_name"
echo "Original version: $original_version"
echo "RC version: $rc_version"

# Update package.json with RC version
# Update package.json with RC version only (not changing name)
jq --arg version "$rc_version" '.version = $version' package.json > package.json.tmp
mv package.json.tmp package.json

Expand All @@ -87,19 +88,6 @@ jobs:
echo "package_name=$package_name"
} >> $GITHUB_OUTPUT

- name: Update package.json for GitHub registry
if: steps.checks.outputs.has_new_release == 'true'
working-directory: ${{ matrix.package }}
shell: bash
run: |
# Update package.json to use GitHub registry name format
jq '.name = "@dotcom-dev/${{ matrix.package }}"' package.json > package.json.tmp
mv package.json.tmp package.json

# Add publishConfig to ensure it goes to GitHub registry with next tag
jq '.publishConfig = {"registry": "https://npm.pkg.github.com", "access": "restricted", "tag": "next"}' package.json > package.json.tmp
mv package.json.tmp package.json

- name: Build
if: steps.checks.outputs.has_new_release == 'true'
run: |
Expand All @@ -116,12 +104,12 @@ jobs:
run: |
npm run pack

- name: Run @arethetypeswrong/cli
if: steps.checks.outputs.has_new_release == 'true'
working-directory: ${{ matrix.package }}
shell: bash
run: |
pnpm attw package.tgz
# - name: Run @arethetypeswrong/cli # broke for drizzle-orm?
# if: steps.checks.outputs.has_new_release == 'true'
# working-directory: ${{ matrix.package }}
# shell: bash
# run: |
# pnpm attw package.tgz

- name: Publish to GitHub registry
if: steps.checks.outputs.has_new_release == 'true'
Expand All @@ -134,96 +122,13 @@ jobs:
package_name="${{ steps.checks.outputs.package_name }}"

echo "Publishing $package_name@$version to GitHub registry with tag 'next'"
npm run publish -- --tag next


# Create .npmrc in the package directory
# echo "registry=https://npm.pkg.github.com" > .npmrc
echo "@dotcom-dev:registry=https://npm.pkg.github.com" >> .npmrc
echo "//npm.pkg.github.com/:_authToken=${NODE_AUTH_TOKEN}" >> .npmrc

# Publish using npm directly
npm run publish -- --registry=https://npm.pkg.github.com --tag next

echo "GitHub registry (next): \`+ $package_name@$version\`" >> $GITHUB_STEP_SUMMARY

- name: Create GitHub release for ORM package
uses: actions/github-script@v6
if: matrix.package == 'drizzle-orm' && steps.checks.outputs.has_new_release == 'true'
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
try {
const fs = require("fs");
const path = require("path");

const version = "${{ steps.checks.outputs.version }}";
const originalVersion = "${{ steps.checks.outputs.original_version }}";

let releaseBody = `# Release Candidate for v${originalVersion}\n\nThis is a pre-release build for testing purposes.`;

const changelogPath = "${{ steps.checks.outputs.changelog_path }}";
if (changelogPath) {
try {
const changelog = fs.readFileSync(changelogPath, "utf8");
releaseBody += `\n\n## Upcoming Changes\n\n${changelog}`;
} catch (e) {
console.log(`Could not read changelog: ${e.message}`);
}
}

const release = await github.rest.repos.createRelease({
owner: context.repo.owner,
repo: context.repo.repo,
tag_name: `rc-${version}`,
name: `Release Candidate ${version}`,
body: releaseBody,
prerelease: true
});

await github.rest.repos.uploadReleaseAsset({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: release.data.id,
name: `${{ matrix.package }}-${version}-dist.tgz`,
data: fs.readFileSync(path.resolve("${{ matrix.package }}", "package.tgz")),
});
} catch (e) {
core.setFailed(e.message);
}

- name: Create GitHub release for KIT package
uses: actions/github-script@v6
if: matrix.package == 'drizzle-kit' && steps.checks.outputs.has_new_release == 'true'
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
try {
const fs = require("fs");
const path = require("path");

const version = "${{ steps.checks.outputs.version }}";
const originalVersion = "${{ steps.checks.outputs.original_version }}";

let releaseBody = `# Release Candidate for v${originalVersion}\n\nThis is a pre-release build for testing purposes.`;

const changelogPath = "${{ steps.checks.outputs.changelog_path }}";
if (changelogPath) {
try {
const changelog = fs.readFileSync(changelogPath, "utf8");
releaseBody += `\n\n## Upcoming Changes\n\n${changelog}`;
} catch (e) {
console.log(`Could not read changelog: ${e.message}`);
}
}

const release = await github.rest.repos.createRelease({
owner: context.repo.owner,
repo: context.repo.repo,
tag_name: `rc-drizzle-kit@${version}`,
name: `Release Candidate drizzle-kit@${version}`,
body: releaseBody,
prerelease: true
});

await github.rest.repos.uploadReleaseAsset({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: release.data.id,
name: `${{ matrix.package }}-${version}-dist.tgz`,
data: fs.readFileSync(path.resolve("${{ matrix.package }}", "package.tgz")),
});
} catch (e) {
core.setFailed(e.message);
}
4 changes: 2 additions & 2 deletions drizzle-kit/build.dev.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ esbuild.buildSync({
format: 'cjs',
target: 'node16',
platform: 'node',
external: ['drizzle-orm', 'esbuild', ...driversPackages],
external: ['@dotcom-dev/drizzle-orm', 'esbuild', ...driversPackages],
banner: {
js: `#!/usr/bin/env -S node --loader @esbuild-kit/esm-loader --no-warnings`,
},
Expand All @@ -40,7 +40,7 @@ esbuild.buildSync({
'json-diff',
'glob',
'esbuild',
'drizzle-orm',
'@dotcom-dev/drizzle-orm',
...driversPackages,
],
banner: {
Expand Down
6 changes: 3 additions & 3 deletions drizzle-kit/build.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ esbuild.buildSync({
'json-diff',
'glob',
'esbuild',
'drizzle-orm',
'@dotcom-dev/drizzle-orm',
...driversPackages,
],
banner: {
Expand All @@ -52,7 +52,7 @@ esbuild.buildSync({
'json-diff',
'glob',
'esbuild',
'drizzle-orm',
'@dotcom-dev/drizzle-orm',
...driversPackages,
],
banner: {
Expand All @@ -72,7 +72,7 @@ esbuild.buildSync({
},
external: [
'esbuild',
'drizzle-orm',
'@dotcom-dev/drizzle-orm',
...driversPackages,
],
banner: {
Expand Down
7 changes: 2 additions & 5 deletions drizzle-kit/package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "drizzle-kit",
"name": "@dotcom-dev/drizzle-kit",
"version": "0.30.5",
"homepage": "https://orm.drizzle.team",
"keywords": [
Expand All @@ -19,9 +19,6 @@
"migrations",
"schema"
],
"publishConfig": {
"provenance": true
},
"repository": {
"type": "git",
"url": "git+https://github.com/drizzle-team/drizzle-orm.git"
Expand Down Expand Up @@ -84,7 +81,7 @@
"dockerode": "^3.3.4",
"dotenv": "^16.0.3",
"drizzle-kit": "0.25.0-b1faa33",
"drizzle-orm": "workspace:./drizzle-orm/dist",
"@dotcom-dev/drizzle-orm": "workspace:./drizzle-orm/dist",
"env-paths": "^3.0.0",
"esbuild-node-externals": "^1.9.0",
"eslint": "^8.57.0",
Expand Down
16 changes: 8 additions & 8 deletions drizzle-kit/src/api.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { randomUUID } from 'crypto';
import { LibSQLDatabase } from 'drizzle-orm/libsql';
import type { MySql2Database } from 'drizzle-orm/mysql2';
import { PgDatabase } from 'drizzle-orm/pg-core';
import { SingleStoreDriverDatabase } from 'drizzle-orm/singlestore';
import { LibSQLDatabase } from '@dotcom-dev/drizzle-orm/libsql';
import type { MySql2Database } from '@dotcom-dev/drizzle-orm/mysql2';
import { PgDatabase } from '@dotcom-dev/drizzle-orm/pg-core';
import { SingleStoreDriverDatabase } from '@dotcom-dev/drizzle-orm/singlestore';
import {
columnsResolver,
enumsResolver,
Expand Down Expand Up @@ -114,7 +114,7 @@ export const pushSchema = async (
extensionsFilters?: Config['extensionsFilters'],
) => {
const { applyPgSnapshotsDiff } = await import('./snapshotsDiffer');
const { sql } = await import('drizzle-orm');
const { sql } = await import('@dotcom-dev/drizzle-orm');
const filters = (tablesFilter ?? []).concat(
getTablesFilterByExtensions({ extensionsFilters, dialect: 'postgresql' }),
);
Expand Down Expand Up @@ -223,7 +223,7 @@ export const pushSQLiteSchema = async (
drizzleInstance: LibSQLDatabase<any>,
) => {
const { applySqliteSnapshotsDiff } = await import('./snapshotsDiffer');
const { sql } = await import('drizzle-orm');
const { sql } = await import('@dotcom-dev/drizzle-orm');

const db: SQLiteDB = {
query: async (query: string, params?: any[]) => {
Expand Down Expand Up @@ -336,7 +336,7 @@ export const pushMySQLSchema = async (
const { mysqlPushIntrospect } = await import(
'./cli/commands/mysqlIntrospect'
);
const { sql } = await import('drizzle-orm');
const { sql } = await import('@dotcom-dev/drizzle-orm');

const db: DB = {
query: async (query: string, params?: any[]) => {
Expand Down Expand Up @@ -442,7 +442,7 @@ export const pushSingleStoreSchema = async (
const { singlestorePushIntrospect } = await import(
'./cli/commands/singlestoreIntrospect'
);
const { sql } = await import('drizzle-orm');
const { sql } = await import('@dotcom-dev/drizzle-orm');

const db: DB = {
query: async (query: string) => {
Expand Down
2 changes: 1 addition & 1 deletion drizzle-kit/src/cli/commands/introspect.ts
Original file line number Diff line number Diff line change
Expand Up @@ -834,7 +834,7 @@ export const relationsToTypeScript = (

const uniqueImports = [...new Set(imports)];

const importsTs = `import { relations } from "drizzle-orm/relations";\nimport { ${
const importsTs = `import { relations } from "@dotcom-dev/drizzle-orm/relations";\nimport { ${
uniqueImports.join(
', ',
)
Expand Down
Loading
Loading