79 lines
3.2 KiB
JavaScript
79 lines
3.2 KiB
JavaScript
// Test script to validate Hyperdrive configuration for remote deployment
|
|
// This script helps test the configuration without local PostgreSQL
|
|
|
|
const { execSync } = require('child_process');
|
|
const fs = require('fs');
|
|
|
|
console.log('🚀 Testing Hyperdrive Configuration for Remote Deployment');
|
|
console.log('======================================================');
|
|
|
|
try {
|
|
// Check wrangler configuration
|
|
console.log('\n📋 Validating wrangler.toml...');
|
|
|
|
const wranglerContent = fs.readFileSync('wrangler.toml', 'utf8');
|
|
console.log('✅ wrangler.toml loaded successfully');
|
|
|
|
// Validate configuration syntax
|
|
try {
|
|
execSync('wrangler config validate', { stdio: 'pipe' });
|
|
console.log('✅ wrangler.toml syntax is valid');
|
|
} catch (error) {
|
|
console.log('⚠️ Configuration validation warning (this is normal for Hyperdrive)');
|
|
}
|
|
|
|
// Check if we can authenticate with Cloudflare
|
|
console.log('\n🔐 Checking Cloudflare authentication...');
|
|
try {
|
|
const whoami = execSync('wrangler whoami', { encoding: 'utf8' });
|
|
console.log('✅ Authenticated with Cloudflare');
|
|
console.log(` ${whoami.trim()}`);
|
|
} catch (error) {
|
|
console.log('❌ Not authenticated with Cloudflare');
|
|
console.log(' Run: wrangler login');
|
|
return;
|
|
}
|
|
|
|
// List Hyperdrive configurations
|
|
console.log('\n🔗 Checking Hyperdrive configurations...');
|
|
try {
|
|
const hyperdrives = execSync('wrangler hyperdrive list', { encoding: 'utf8' });
|
|
console.log('✅ Hyperdrive configurations:');
|
|
console.log(hyperdrives);
|
|
} catch (error) {
|
|
console.log('⚠️ Could not list Hyperdrive configurations');
|
|
console.log(' Error:', error.message);
|
|
}
|
|
|
|
// Check specific Hyperdrive
|
|
console.log('\n🎯 Checking specific Hyperdrive ID...');
|
|
try {
|
|
const hyperdriveInfo = execSync('wrangler hyperdrive get ef43924d89064cddabfaccf06aadfab6', { encoding: 'utf8' });
|
|
console.log('✅ Hyperdrive configuration found:');
|
|
console.log(hyperdriveInfo);
|
|
} catch (error) {
|
|
console.log('❌ Could not find Hyperdrive configuration');
|
|
console.log(' Error:', error.message);
|
|
console.log(' Make sure the Hyperdrive ID is correct and exists in your account');
|
|
}
|
|
|
|
console.log('\n📝 Configuration Summary:');
|
|
console.log(' - Worker Name: hyperdrive-neondb-test');
|
|
console.log(' - Hyperdrive ID: ef43924d89064cddabfaccf06aadfab6');
|
|
console.log(' - Binding: HYPERDRIVE');
|
|
console.log(' - Database Type: NeonDB (PostgreSQL)');
|
|
|
|
console.log('\n🚀 Deployment Commands:');
|
|
console.log(' 1. Deploy to production: wrangler deploy');
|
|
console.log(' 2. Test endpoints after deployment:');
|
|
console.log(' - https://hyperdrive-neondb-test.<your-subdomain>.workers.dev/test-connection');
|
|
console.log(' - https://hyperdrive-neondb-test.<your-subdomain>.workers.dev/test-query');
|
|
|
|
console.log('\n💡 Tips:');
|
|
console.log(' - Hyperdrive provides connection pooling and caching for your database');
|
|
console.log(' - It reduces latency and improves performance for database queries');
|
|
console.log(' - The worker will automatically use the Hyperdrive connection in production');
|
|
|
|
} catch (error) {
|
|
console.error('❌ Error during testing:', error.message);
|
|
} |