hPiBot openclaw ve Opencode ilk versiyonu[B
This commit is contained in:
48
backend/src/utils/dbCharsetSetup.js
Normal file
48
backend/src/utils/dbCharsetSetup.js
Normal 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 };
|
||||
Reference in New Issue
Block a user