hPiBot openclaw ve Opencode ilk versiyonu[B

This commit is contained in:
2026-03-04 05:17:51 +03:00
commit d49edbfba3
75 changed files with 42117 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
const url = require('url');
function getDatabaseName(databaseUrl) {
try {
const parsed = new url.URL(databaseUrl);
// pathname like "/dbname"; strip leading '/'
const dbPath = parsed.pathname || '';
const dbName = dbPath.startsWith('/') ? dbPath.slice(1) : dbPath;
return dbName.split('?')[0];
} catch {
// Fallback: basic parsing
const parts = (databaseUrl || '').split('/');
return (parts[parts.length - 1] || '').split('?')[0];
}
}
async function setupUtf8mb4(prisma) {
const databaseUrl = process.env.DATABASE_URL || '';
// SQLite için bu fonksiyonu atla
if (databaseUrl.includes('sqlite') || databaseUrl.includes('.db')) {
console.log(' SQLite kullanılıyor. UTF8MB4 kurulumu atlandı.');
return;
}
const dbName = getDatabaseName(databaseUrl);
if (!dbName) {
console.warn('⚠️ DATABASE_URL bulunamadı veya veritabanı adı çözümlenemedi. UTF8MB4 kurulumu atlandı.');
return;
}
// Only run for MySQL/MariaDB
try {
await prisma.$executeRawUnsafe(`ALTER DATABASE \`${dbName}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci`);
console.log('✅ Veritabanı varsayılan karakter seti/collation utf8mb4 olarak ayarlandı.');
} catch (err) {
console.warn('⚠️ Veritabanı charset ayarlanırken hata oluştu:', err?.message || err);
}
try {
await prisma.$executeRawUnsafe('ALTER TABLE `categories` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci');
console.log('✅ `categories` tablosu utf8mb4 olarak dönüştürüldü.');
} catch (err) {
console.warn('⚠️ `categories` tablosu dönüştürülürken hata oluştu:', err?.message || err);
}
}
module.exports = { setupUtf8mb4 };