feat(backend): update collections, config and migration tools

Update Payload CMS configuration, collections (Audit, Posts), and add migration scripts/reports.
This commit is contained in:
2026-02-11 11:50:23 +08:00
parent 8ca609a889
commit be7fc902fb
46 changed files with 5442 additions and 15 deletions

View File

@@ -0,0 +1,111 @@
#!/usr/bin/env tsx
/**
* Test Payload Post Creation with Lexical Content
*/
import { getPayload } from 'payload'
import config from '@payload-config'
async function testPostCreation() {
const payload = await getPayload({ config })
// Test 1: Simple string content
console.log('\n🧪 Test 1: String content')
try {
const result1 = await payload.create({
collection: 'posts',
data: {
title: 'Test String Content',
slug: 'test-string-' + Date.now(),
content: '<p>Simple HTML content</p>',
publishedAt: new Date(),
status: 'draft',
},
})
console.log('✓ String content worked:', result1.id)
await payload.delete({
collection: 'posts',
id: result1.id,
})
} catch (error: any) {
console.log('✗ String content failed:', error.message)
}
// Test 2: JSON string content
console.log('\n🧪 Test 2: JSON string content')
try {
const result2 = await payload.create({
collection: 'posts',
data: {
title: 'Test JSON Content',
slug: 'test-json-' + Date.now(),
content: JSON.stringify({
type: 'root',
version: 1,
children: [{
type: 'paragraph',
version: 1,
children: [{
type: 'text',
version: 1,
text: 'This is a test paragraph.'
}]
}],
direction: null
}),
publishedAt: new Date(),
status: 'draft',
},
})
console.log('✓ JSON string content worked:', result2.id)
await payload.delete({
collection: 'posts',
id: result2.id,
})
} catch (error: any) {
console.log('✗ JSON string content failed:', error.message)
if (error.data) {
console.error(' Validation errors:', JSON.stringify(error.data, null, 2))
}
}
// Test 3: Object content
console.log('\n🧪 Test 3: Object content')
try {
const result3 = await payload.create({
collection: 'posts',
data: {
title: 'Test Object Content',
slug: 'test-object-' + Date.now(),
content: {
type: 'root',
version: 1,
children: [{
type: 'paragraph',
version: 1,
children: [{
type: 'text',
version: 1,
text: 'This is a test paragraph.'
}]
}],
direction: null
},
publishedAt: new Date(),
status: 'draft',
},
})
console.log('✓ Object content worked:', result3.id)
await payload.delete({
collection: 'posts',
id: result3.id,
})
} catch (error: any) {
console.log('✗ Object content failed:', error.message)
if (error.data) {
console.error(' Validation errors:', JSON.stringify(error.data, null, 2))
}
}
}
testPostCreation().catch(console.error)