feat: adds new Cloudflare D1 SQLite adapter, R2 storage adapter and Cloudflare template (#12537)
This feat adds support for - [D1 Cloudflare SQLite](https://developers.cloudflare.com/d1/) - R2 storage directly (previously it was via S3 SDK) - Cloudflare 1-click deploy template --------- Co-authored-by: Paul Popus <paul@payloadcms.com>
This commit is contained in:
@@ -113,6 +113,11 @@ export const allDatabaseAdapters = {
|
||||
process.env.POSTGRES_URL || 'postgresql://postgres:postgres@127.0.0.1:54322/postgres',
|
||||
},
|
||||
})`,
|
||||
d1: `
|
||||
import { sqliteD1Adapter } from '@payloadcms/db-d1-sqlite'
|
||||
|
||||
export const databaseAdapter = sqliteD1Adapter({ binding: global.d1 })
|
||||
`,
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { D1DatabaseAPI } from '@miniflare/d1'
|
||||
import { createSQLiteDB } from '@miniflare/shared'
|
||||
import dotenv from 'dotenv'
|
||||
import { MongoMemoryReplSet } from 'mongodb-memory-server'
|
||||
dotenv.config()
|
||||
@@ -22,6 +24,11 @@ export default async () => {
|
||||
process.env.NODE_OPTIONS = '--no-deprecation'
|
||||
process.env.DISABLE_PAYLOAD_HMR = 'true'
|
||||
|
||||
if (process.env.PAYLOAD_DATABASE === 'd1' && !global.d1) {
|
||||
process.env.PAYLOAD_DROP_DATABASE = 'false'
|
||||
console.log('Starting memory D1 db...')
|
||||
global.d1 = new D1DatabaseAPI(await createSQLiteDB(':memory'))
|
||||
}
|
||||
if (
|
||||
(!process.env.PAYLOAD_DATABASE ||
|
||||
['firestore', 'mongodb'].includes(process.env.PAYLOAD_DATABASE)) &&
|
||||
|
||||
@@ -10,6 +10,7 @@ import nodemailer from 'nodemailer'
|
||||
import { generateDatabaseAdapter } from './generateDatabaseAdapter.js'
|
||||
|
||||
process.env.PAYLOAD_DISABLE_ADMIN = 'true'
|
||||
|
||||
process.env.PAYLOAD_DROP_DATABASE = 'true'
|
||||
|
||||
process.env.PAYLOAD_PUBLIC_CLOUD_STORAGE_ADAPTER = 's3'
|
||||
|
||||
@@ -25,8 +25,11 @@
|
||||
"@aws-sdk/client-s3": "^3.614.0",
|
||||
"@azure/storage-blob": "^12.11.0",
|
||||
"@date-fns/tz": "1.2.0",
|
||||
"@miniflare/d1": "2.14.4",
|
||||
"@miniflare/shared": "2.14.4",
|
||||
"@next/env": "15.4.4",
|
||||
"@payloadcms/admin-bar": "workspace:*",
|
||||
"@payloadcms/db-d1-sqlite": "workspace:*",
|
||||
"@payloadcms/db-mongodb": "workspace:*",
|
||||
"@payloadcms/db-postgres": "workspace:*",
|
||||
"@payloadcms/db-sqlite": "workspace:*",
|
||||
@@ -66,6 +69,7 @@
|
||||
"@types/react": "19.1.12",
|
||||
"@types/react-dom": "19.1.9",
|
||||
"babel-plugin-react-compiler": "19.1.0-rc.3",
|
||||
"better-sqlite3": "11.10.0",
|
||||
"comment-json": "^4.2.3",
|
||||
"create-payload-app": "workspace:*",
|
||||
"csv-parse": "^5.6.0",
|
||||
|
||||
@@ -12,6 +12,7 @@ export const tgzToPkgNameMap = {
|
||||
'@payloadcms/db-postgres': 'payloadcms-db-postgres-*',
|
||||
'@payloadcms/db-vercel-postgres': 'payloadcms-db-vercel-postgres-*',
|
||||
'@payloadcms/db-sqlite': 'payloadcms-db-sqlite-*',
|
||||
'@payloadcms/db-d1-sqlite': 'payloadcms-db-d1-sqlite-*',
|
||||
'@payloadcms/drizzle': 'payloadcms-drizzle-*',
|
||||
'@payloadcms/email-nodemailer': 'payloadcms-email-nodemailer-*',
|
||||
'@payloadcms/email-resend': 'payloadcms-email-resend-*',
|
||||
|
||||
Reference in New Issue
Block a user