diff --git a/.github/scripts/increment-version.js b/.github/scripts/increment-version.js index e8fe2d7..0a001e9 100644 --- a/.github/scripts/increment-version.js +++ b/.github/scripts/increment-version.js @@ -53,11 +53,7 @@ function incrementVersion(version) { } function isStableRelease(version) { - // Check if version is a stable release (not alpha, beta, canary, etc.) - // Include common typos and variations - const prereleasePattern = - /-(alpha|beta|canary|canery|rc|dev|pre|snapshot|nightly|test)/i; - return !prereleasePattern.test(version); + return true; } function updateProjectData() { diff --git a/.github/workflows/auto-update-version.yml.disabled b/.github/workflows/auto-update-version.yml.disabled index 0dadbc8..4fcd824 100644 --- a/.github/workflows/auto-update-version.yml.disabled +++ b/.github/workflows/auto-update-version.yml.disabled @@ -1,7 +1,8 @@ name: Auto Update Version on: - push: + pull_request: + types: [opened] branches: - master - main diff --git a/.github/workflows/build_docker_image.yml.disabled b/.github/workflows/build_docker_image.yml.disabled deleted file mode 100644 index 51c00a6..0000000 --- a/.github/workflows/build_docker_image.yml.disabled +++ /dev/null @@ -1,57 +0,0 @@ -name: Build and Push Latest Image (to ghcr.io) - -on: - push: - branches: - - master - workflow_dispatch: - -env: - REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository }} - -jobs: - build-and-push: - runs-on: ubuntu-latest - environment: prod - permissions: - contents: read - packages: write - # Only run if not triggered by the auto-increment commit - if: "!contains(github.event.head_commit.message, '🤖 Auto-increment version')" - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Log in to the Container registry - uses: docker/login-action@v3 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - tags: | - type=raw,value=latest - type=ref,event=branch - type=ref,event=pr - type=semver,pattern={{version}} - type=sha,prefix= - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Build and push Docker image - uses: docker/build-push-action@v5 - with: - context: . - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - cache-from: type=gha - cache-to: type=gha,mode=max diff --git a/.github/workflows/production-release.yml b/.github/workflows/production-release.yml deleted file mode 100644 index 316f038..0000000 --- a/.github/workflows/production-release.yml +++ /dev/null @@ -1,198 +0,0 @@ -name: Production Release - -on: - push: - branches: - - master - - main - workflow_dispatch: - -env: - REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository }} - -jobs: - production-release: - runs-on: ubuntu-latest - permissions: - contents: write - packages: write - # Skip if the commit message contains the auto-increment marker to prevent infinite loops - if: "!contains(github.event.head_commit.message, '🤖 Auto-increment version')" - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - token: ${{ secrets.GITHUB_TOKEN }} - fetch-depth: 0 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: "20" - - - name: Update versions using comprehensive management script - id: version_update - run: | - # Make script executable - chmod +x .github/scripts/manage-versions.js - - # Run the comprehensive version management script - node .github/scripts/manage-versions.js - - # Display updated files - echo "Updated projectData.ts:" - cat apps/web/projectData.ts - echo "" - echo "Updated version.json:" - cat version.json - - - name: Check for changes - id: git_status - run: | - if [ -n "$(git status --porcelain)" ]; then - echo "changes=true" >> $GITHUB_OUTPUT - else - echo "changes=false" >> $GITHUB_OUTPUT - fi - - - name: Commit version changes - if: steps.git_status.outputs.changes == 'true' - run: | - git config --local user.email "action@github.com" - git config --local user.name "GitHub Action" - - # Add all changed files - git add apps/web/projectData.ts version.json - - # Add version file if it was created - if [ -n "${{ steps.version_update.outputs.version_file }}" ]; then - git add "Versions/${{ steps.version_update.outputs.version_file }}" - fi - - git commit -m "🤖 Auto-increment version to ${{ steps.version_update.outputs.new_version }} (prod: ${{ steps.version_update.outputs.prod_version }}, dev: ${{ steps.version_update.outputs.dev_version }})" - git push - - - name: Log in to the Container registry - uses: docker/login-action@v3 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - tags: | - type=raw,value=latest - type=raw,value=${{ steps.version_update.outputs.new_version }} - type=raw,value=${{ steps.version_update.outputs.prod_version }},enable={{isBranch 'master'}} - type=ref,event=branch - type=semver,pattern={{version}} - type=sha,prefix= - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Build and push Docker image - uses: docker/build-push-action@v5 - with: - context: . - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - cache-from: type=gha - cache-to: type=gha,mode=max - - - name: Create version branch (stable releases only) - if: steps.git_status.outputs.changes == 'true' && steps.version_update.outputs.is_stable == 'true' && steps.version_update.outputs.is_master == 'true' - run: | - # Create a new branch for this stable version - git checkout -b "release/v${{ steps.version_update.outputs.new_version }}" - git push origin "release/v${{ steps.version_update.outputs.new_version }}" - - # Switch back to main branch - git checkout ${{ github.ref_name }} - - - name: Generate release notes (stable releases only) - if: steps.git_status.outputs.changes == 'true' && steps.version_update.outputs.is_stable == 'true' && steps.version_update.outputs.is_master == 'true' - id: release_notes - run: | - # Make script executable - chmod +x .github/scripts/generate-release-notes.js - - # Generate release notes using the script - node .github/scripts/generate-release-notes.js "${{ steps.version_update.outputs.new_version }}" - - - name: Create Git Tag (stable releases only) - if: steps.git_status.outputs.changes == 'true' && steps.version_update.outputs.is_stable == 'true' && steps.version_update.outputs.is_master == 'true' - run: | - git tag v${{ steps.version_update.outputs.new_version }} - git push origin v${{ steps.version_update.outputs.new_version }} - - - name: Create GitHub Release (stable releases only) - if: steps.git_status.outputs.changes == 'true' && steps.version_update.outputs.is_stable == 'true' && steps.version_update.outputs.is_master == 'true' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - # Use version file if created, otherwise use generated release notes - if [ -f "Versions/${{ steps.version_update.outputs.version_file }}" ]; then - NOTES_FILE="Versions/${{ steps.version_update.outputs.version_file }}" - else - NOTES_FILE="release-notes.md" - fi - - # Create release using GitHub CLI - gh release create v${{ steps.version_update.outputs.new_version }} \ - --title "Release v${{ steps.version_update.outputs.new_version }}" \ - --notes-file "$NOTES_FILE" \ - --latest - - - name: Output summary - run: | - echo "## 🚀 Production Release Summary" >> $GITHUB_STEP_SUMMARY - echo "- **Previous version:** ${{ steps.version_update.outputs.previous_version }}" >> $GITHUB_STEP_SUMMARY - echo "- **New version:** ${{ steps.version_update.outputs.new_version }}" >> $GITHUB_STEP_SUMMARY - echo "- **Production version:** ${{ steps.version_update.outputs.prod_version }}" >> $GITHUB_STEP_SUMMARY - echo "- **Development version:** ${{ steps.version_update.outputs.dev_version }}" >> $GITHUB_STEP_SUMMARY - echo "- **Branch:** ${{ github.ref_name }}" >> $GITHUB_STEP_SUMMARY - echo "- **Stable release:** ${{ steps.version_update.outputs.is_stable }}" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - - echo "### đŸŗ Docker Images Built" >> $GITHUB_STEP_SUMMARY - echo "- \`${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest\`" >> $GITHUB_STEP_SUMMARY - echo "- \`${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version_update.outputs.new_version }}\`" >> $GITHUB_STEP_SUMMARY - - if [ "${{ steps.version_update.outputs.is_master }}" == "true" ]; then - echo "- \`${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version_update.outputs.prod_version }}\`" >> $GITHUB_STEP_SUMMARY - fi - echo "" >> $GITHUB_STEP_SUMMARY - - echo "### 📁 Files Updated" >> $GITHUB_STEP_SUMMARY - echo "- \`apps/web/projectData.ts\` - Updated to ${{ steps.version_update.outputs.new_version }}" >> $GITHUB_STEP_SUMMARY - echo "- \`version.json\` - prod: ${{ steps.version_update.outputs.prod_version }}, dev: ${{ steps.version_update.outputs.dev_version }}" >> $GITHUB_STEP_SUMMARY - - if [ -n "${{ steps.version_update.outputs.version_file }}" ]; then - echo "- \`Versions/${{ steps.version_update.outputs.version_file }}\` - New version file created" >> $GITHUB_STEP_SUMMARY - fi - echo "" >> $GITHUB_STEP_SUMMARY - - if [ "${{ steps.version_update.outputs.is_stable }}" == "true" ] && [ "${{ steps.version_update.outputs.is_master }}" == "true" ]; then - echo "### đŸˇī¸ Release Created" >> $GITHUB_STEP_SUMMARY - echo "- **Tag:** \`v${{ steps.version_update.outputs.new_version }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Branch:** \`release/v${{ steps.version_update.outputs.new_version }}\`" >> $GITHUB_STEP_SUMMARY - echo "- **Release:** [v${{ steps.version_update.outputs.new_version }}](https://github.com/${{ github.repository }}/releases/tag/v${{ steps.version_update.outputs.new_version }})" >> $GITHUB_STEP_SUMMARY - if [ -n "${{ steps.version_update.outputs.version_file }}" ]; then - echo "- **Version File:** \`Versions/${{ steps.version_update.outputs.version_file }}\`" >> $GITHUB_STEP_SUMMARY - fi - else - echo "### âš ī¸ Development Build" >> $GITHUB_STEP_SUMMARY - if [ "${{ steps.version_update.outputs.is_master }}" != "true" ]; then - echo "This is a development branch build. No GitHub release or version branch created." >> $GITHUB_STEP_SUMMARY - else - echo "This is a pre-release version (contains alpha, beta, canary, etc.). No GitHub release or version branch created." >> $GITHUB_STEP_SUMMARY - fi - fi diff --git a/.github/workflows/version-and-build.yml b/.github/workflows/version-and-build.yml deleted file mode 100644 index bbc29e5..0000000 --- a/.github/workflows/version-and-build.yml +++ /dev/null @@ -1,166 +0,0 @@ -name: Auto Update Version and Build - -on: - pull_request: - types: [opened, synchronize, reopened] - branches: - - master - - main - workflow_dispatch: - -env: - REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository }} - -jobs: - update-version-and-build: - runs-on: ubuntu-latest - permissions: - contents: write - packages: write - # Only run for collaborators or repository owner - if: | - github.event.pull_request.author_association == 'OWNER' || - github.event.pull_request.author_association == 'COLLABORATOR' || - github.event.pull_request.author_association == 'MEMBER' - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - token: ${{ secrets.GITHUB_TOKEN }} - fetch-depth: 0 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: "20" - - - name: Update versions using comprehensive management script - id: version_update - run: | - # Make script executable - chmod +x .github/scripts/manage-versions.js - - # Run the comprehensive version management script - node .github/scripts/manage-versions.js - - # Display updated files - echo "Updated projectData.ts:" - cat apps/web/projectData.ts - echo "" - echo "Updated version.json:" - cat version.json - - - name: Check for changes - id: git_status - run: | - if [ -n "$(git status --porcelain)" ]; then - echo "changes=true" >> $GITHUB_OUTPUT - else - echo "changes=false" >> $GITHUB_OUTPUT - fi - - - name: Commit version changes (PR only - no push) - if: steps.git_status.outputs.changes == 'true' - run: | - git config --local user.email "action@github.com" - git config --local user.name "GitHub Action" - - # Add all changed files - git add apps/web/projectData.ts version.json - - # Add version file if it was created - if [ -n "${{ steps.version_update.outputs.version_file }}" ]; then - git add "Versions/${{ steps.version_update.outputs.version_file }}" - fi - - git commit -m "🤖 Auto-increment version to ${{ steps.version_update.outputs.new_version }} (prod: ${{ steps.version_update.outputs.prod_version }}, dev: ${{ steps.version_update.outputs.dev_version }})" - # Note: Not pushing changes in PR context - they will be available for review - - - name: Log in to the Container registry - uses: docker/login-action@v3 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - tags: | - type=raw,value=pr-${{ github.event.number }} - type=raw,value=${{ steps.version_update.outputs.new_version }}-pr-${{ github.event.number }} - type=ref,event=pr - type=sha,prefix=pr-${{ github.event.number }}- - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Build and push Docker image - uses: docker/build-push-action@v5 - with: - context: . - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - cache-from: type=gha - cache-to: type=gha,mode=max - - - name: Add PR comment with build info - uses: actions/github-script@v7 - with: - script: | - const comment = `## 🚀 CI/CD Build Summary for PR #${{ github.event.number }} - - **Build Status:** ✅ Success - **Version:** ${{ steps.version_update.outputs.new_version }} - **Docker Images Built:** - - \`${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:pr-${{ github.event.number }}\` - - \`${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version_update.outputs.new_version }}-pr-${{ github.event.number }}\` - - **Files Updated:** - - \`apps/web/projectData.ts\` - Updated to ${{ steps.version_update.outputs.new_version }} - - \`version.json\` - prod: ${{ steps.version_update.outputs.prod_version }}, dev: ${{ steps.version_update.outputs.dev_version }} - ${steps.version_update.outputs.version_file ? `- \`Versions/${{ steps.version_update.outputs.version_file }}\` - New version file created` : ''} - - > **Note:** This is a PR build. No releases or version branches will be created until the PR is merged.`; - - github.rest.issues.createComment({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - body: comment - }); - - - name: Output summary - run: | - echo "## 🚀 PR Build Summary for #${{ github.event.number }}" >> $GITHUB_STEP_SUMMARY - echo "- **Previous version:** ${{ steps.version_update.outputs.previous_version }}" >> $GITHUB_STEP_SUMMARY - echo "- **New version:** ${{ steps.version_update.outputs.new_version }}" >> $GITHUB_STEP_SUMMARY - echo "- **Production version:** ${{ steps.version_update.outputs.prod_version }}" >> $GITHUB_STEP_SUMMARY - echo "- **Development version:** ${{ steps.version_update.outputs.dev_version }}" >> $GITHUB_STEP_SUMMARY - echo "- **PR Author:** ${{ github.event.pull_request.user.login }}" >> $GITHUB_STEP_SUMMARY - echo "- **Author Association:** ${{ github.event.pull_request.author_association }}" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - - echo "### đŸŗ Docker Images Built" >> $GITHUB_STEP_SUMMARY - echo "- \`${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:pr-${{ github.event.number }}\`" >> $GITHUB_STEP_SUMMARY - echo "- \`${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version_update.outputs.new_version }}-pr-${{ github.event.number }}\`" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - - echo "### 📁 Files Updated" >> $GITHUB_STEP_SUMMARY - echo "- \`apps/web/projectData.ts\` - Updated to ${{ steps.version_update.outputs.new_version }}" >> $GITHUB_STEP_SUMMARY - echo "- \`version.json\` - prod: ${{ steps.version_update.outputs.prod_version }}, dev: ${{ steps.version_update.outputs.dev_version }}" >> $GITHUB_STEP_SUMMARY - - if [ -n "${{ steps.version_update.outputs.version_file }}" ]; then - echo "- \`Versions/${{ steps.version_update.outputs.version_file }}\` - New version file created" >> $GITHUB_STEP_SUMMARY - fi - echo "" >> $GITHUB_STEP_SUMMARY - - echo "### â„šī¸ PR Build Notes" >> $GITHUB_STEP_SUMMARY - echo "This is a pull request build. No releases, tags, or version branches will be created." >> $GITHUB_STEP_SUMMARY - echo "Version changes are committed locally for review but not pushed to the repository." >> $GITHUB_STEP_SUMMARY - echo "Once the PR is merged, you may want to run a separate workflow for production deployments." >> $GITHUB_STEP_SUMMARY diff --git a/apps/web/projectData.ts b/apps/web/projectData.ts index 61976bc..604b484 100644 --- a/apps/web/projectData.ts +++ b/apps/web/projectData.ts @@ -1,5 +1,5 @@ const data = { - version: "0.1.13-canary-1", + version: "0.1.14", }; export default data; diff --git a/apps/web/src/app/c/[slug]/client.tsx b/apps/web/src/app/c/[slug]/client.tsx new file mode 100644 index 0000000..380bbee --- /dev/null +++ b/apps/web/src/app/c/[slug]/client.tsx @@ -0,0 +1,29 @@ +import type { + auth_schema, + main_schema, +} from "../../../../../../packages/db/src"; + +type getUserInfoType = typeof auth_schema.user.$inferSelect; +type collectionsType = typeof main_schema.collections.$inferSelect; + +export default function Client({ + data, +}: { + data: { + userInfo: { + id: getUserInfoType["id"]; + name: getUserInfoType["name"]; + image: getUserInfoType["image"]; + }; + slug: collectionsType["id"]; + title: collectionsType["title"]; + createdAt: collectionsType["createdAt"]; + updatedAt: collectionsType["updatedAt"]; + }; +}) { + return ( +
+ {data.title} +
+ ); +} diff --git a/apps/web/src/app/c/[slug]/page.tsx b/apps/web/src/app/c/[slug]/page.tsx index ef45aab..ebea90f 100644 --- a/apps/web/src/app/c/[slug]/page.tsx +++ b/apps/web/src/app/c/[slug]/page.tsx @@ -12,11 +12,10 @@ import type { Metadata } from "next"; import { CalendarPlusIcon, CalendarSyncIcon, DotIcon } from "lucide-react"; import Link from "next/link"; import { Badge } from "@/components/ui/badge"; +import Client from "./client"; export const dynamic = "force-dynamic"; -type Collections = typeof main_schema.collections.$inferSelect; - export default async function Page(props: { params: Promise<{ slug: string }>; }) { @@ -25,7 +24,7 @@ export default async function Page(props: { }); const userId = session?.session.userId; const { slug } = await props.params; - const content: Collections[] = await db + const content: (typeof main_schema.collections.$inferSelect)[] = await db .select() .from(main_schema.collections) .where(dorm.eq(main_schema.userPosts.postId, slug)); @@ -39,7 +38,21 @@ export default async function Page(props: { .from(auth_schema.user) .where(dorm.eq(auth_schema.user.id, content[0].byUser)); - return
; + return ( + + ); } export async function generateMetadata({ @@ -48,7 +61,7 @@ export async function generateMetadata({ params: Promise<{ slug: string }>; }): Promise { const resolvedParams = await params; - const content: Collections[] = await db + const content: (typeof main_schema.collections.$inferSelect)[] = await db .select() .from(main_schema.collections) .where(dorm.eq(main_schema.userPosts.postId, resolvedParams.slug)); diff --git a/apps/web/src/app/i/[slug]/page.tsx b/apps/web/src/app/i/[slug]/page.tsx index cae81f6..ce20c4f 100644 --- a/apps/web/src/app/i/[slug]/page.tsx +++ b/apps/web/src/app/i/[slug]/page.tsx @@ -12,6 +12,8 @@ import type { Metadata } from "next"; import { CalendarPlusIcon, CalendarSyncIcon, DotIcon } from "lucide-react"; import Link from "next/link"; import { Badge } from "@/components/ui/badge"; +import Markdown from "marked-react"; +import renderer from "@/components/markdownRender"; export const dynamic = "force-dynamic"; @@ -64,7 +66,9 @@ export default async function Page(props: { /> )} - {content[0].textData ?? ""} +
+ {content[0].textData ?? ""} +
{(content[0].tags as string[]).map((it: string) => ( {getUserInfo[0].name} diff --git a/apps/web/src/components/markdownRender.tsx b/apps/web/src/components/markdownRender.tsx index 25c3e68..0779d2d 100644 --- a/apps/web/src/components/markdownRender.tsx +++ b/apps/web/src/components/markdownRender.tsx @@ -1,6 +1,7 @@ import Link from "next/link"; import CodeRender from "./markdownCodeBlock"; import type { Route } from "next"; +import { Ultra } from "next/font/google"; // Slugify function for heading IDs function slugify(text: string) { @@ -75,6 +76,23 @@ const renderer = { ); }, + list(body: any, ordered: boolean, start?: number) { + if (ordered) { + return ( +
    1 ? start : 1} + > + {body} +
+ ); + } + + return
    {body}
; + }, + listitem(text: any) { + return
  • {text}
  • ; + }, }; export default renderer; diff --git a/apps/web/src/components/navigation.tsx b/apps/web/src/components/navigation.tsx index 31b7dc5..ccf7ab3 100644 --- a/apps/web/src/components/navigation.tsx +++ b/apps/web/src/components/navigation.tsx @@ -16,6 +16,7 @@ import { Spinner } from "./ui/spinner"; import { useRouter } from "next/navigation"; import * as React from "react"; import { ModeToggle } from "./mode-toggle"; +import { useQuery, useQueryClient } from "@tanstack/react-query"; import { HouseIcon, LayoutDashboardIcon, @@ -26,12 +27,20 @@ import { Sun, UserIcon, } from "lucide-react"; -import { useTheme } from "next-themes"; export default function Navigation() { + const queryClient = useQueryClient(); + const querySystemData = useQuery({ + queryFn: async () => { + const req = await fetch("/api/data/system_info"); + const res = await req.json(); + return res; + }, + queryKey: ["system_info"], + }); return (
    -
    +
    - © {new Date().getFullYear()} + + © {new Date().getFullYear()}{" "} + {querySystemData.data?.copyright_owner || ""}{" "} + {querySystemData.data?.optionalExposeVersion === true + ? `| v${querySystemData.data?.version}` + : null} +
    ); diff --git a/packages/db/src/migrations/0014_reflective_roughhouse.sql b/packages/db/src/migrations/0014_reflective_roughhouse.sql index 860be5c..63a855c 100644 --- a/packages/db/src/migrations/0014_reflective_roughhouse.sql +++ b/packages/db/src/migrations/0014_reflective_roughhouse.sql @@ -1,4 +1,4 @@ INSERT INTO kv_data (key, value) VALUES -('copyrightOwner', 'Default Owner'), -('exposeVersion', 'false'), +('copyrightOwner', '"Default Owner"'), +('exposeVersion', 'false') ON CONFLICT DO NOTHING;