mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-18 00:09:41 +02:00
style: auto-format codebase with Prettier
Applied formatting to 1487+ files using pnpm format:write - TypeScript/JavaScript files - Svelte components - Astro pages - JSON configs - Markdown docs 13 files still need manual review (Astro JSX comments)
This commit is contained in:
parent
0241f5554c
commit
d36b321d9d
3952 changed files with 661498 additions and 739751 deletions
|
|
@ -16,51 +16,53 @@ const supabaseUrl = process.env.EXPO_PUBLIC_SUPABASE_URL;
|
|||
const supabaseKey = process.env.EXPO_PUBLIC_SUPABASE_ANON_KEY;
|
||||
|
||||
if (!supabaseUrl || !supabaseKey) {
|
||||
console.error('Fehler: EXPO_PUBLIC_SUPABASE_URL und EXPO_PUBLIC_SUPABASE_ANON_KEY müssen in der .env-Datei definiert sein.');
|
||||
process.exit(1);
|
||||
console.error(
|
||||
'Fehler: EXPO_PUBLIC_SUPABASE_URL und EXPO_PUBLIC_SUPABASE_ANON_KEY müssen in der .env-Datei definiert sein.'
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const supabase = createClient(supabaseUrl, supabaseKey);
|
||||
|
||||
// Funktion zum Ausführen einer SQL-Datei
|
||||
async function executeSqlFile(filePath) {
|
||||
try {
|
||||
const fullPath = join(__dirname, filePath);
|
||||
console.log(`Führe SQL-Datei aus: ${fullPath}`);
|
||||
|
||||
if (!fs.existsSync(fullPath)) {
|
||||
console.error(`Fehler: Datei ${fullPath} existiert nicht.`);
|
||||
return false;
|
||||
}
|
||||
|
||||
const query = fs.readFileSync(fullPath, 'utf8');
|
||||
|
||||
// Teile die Abfrage in einzelne Anweisungen auf
|
||||
const statements = query.split(';').filter(stmt => stmt.trim() !== '');
|
||||
|
||||
for (const statement of statements) {
|
||||
console.log(`Führe aus: ${statement.trim()}`);
|
||||
const { error } = await supabase.rpc('execute_sql', { query: statement.trim() });
|
||||
|
||||
if (error) {
|
||||
console.error('Fehler bei der Ausführung:', error.message);
|
||||
// Fahre trotz Fehler fort
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error('Fehler beim Lesen oder Ausführen der Datei:', error.message);
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
const fullPath = join(__dirname, filePath);
|
||||
console.log(`Führe SQL-Datei aus: ${fullPath}`);
|
||||
|
||||
if (!fs.existsSync(fullPath)) {
|
||||
console.error(`Fehler: Datei ${fullPath} existiert nicht.`);
|
||||
return false;
|
||||
}
|
||||
|
||||
const query = fs.readFileSync(fullPath, 'utf8');
|
||||
|
||||
// Teile die Abfrage in einzelne Anweisungen auf
|
||||
const statements = query.split(';').filter((stmt) => stmt.trim() !== '');
|
||||
|
||||
for (const statement of statements) {
|
||||
console.log(`Führe aus: ${statement.trim()}`);
|
||||
const { error } = await supabase.rpc('execute_sql', { query: statement.trim() });
|
||||
|
||||
if (error) {
|
||||
console.error('Fehler bei der Ausführung:', error.message);
|
||||
// Fahre trotz Fehler fort
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error('Fehler beim Lesen oder Ausführen der Datei:', error.message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Funktion zum Erstellen der execute_sql-Funktion
|
||||
async function createExecuteSqlFunction() {
|
||||
try {
|
||||
console.log('Erstelle execute_sql-Funktion...');
|
||||
|
||||
const query = `
|
||||
try {
|
||||
console.log('Erstelle execute_sql-Funktion...');
|
||||
|
||||
const query = `
|
||||
CREATE OR REPLACE FUNCTION execute_sql(query text)
|
||||
RETURNS JSONB
|
||||
LANGUAGE plpgsql
|
||||
|
|
@ -77,60 +79,58 @@ async function createExecuteSqlFunction() {
|
|||
END;
|
||||
$$;
|
||||
`;
|
||||
|
||||
const { error } = await supabase.rpc('execute_sql', { query });
|
||||
|
||||
if (error) {
|
||||
// Die Funktion existiert möglicherweise noch nicht, versuche direkte SQL-Ausführung
|
||||
console.log('Versuche direkte SQL-Ausführung...');
|
||||
|
||||
const { error: directError } = await supabase
|
||||
.from('_exec_sql')
|
||||
.insert({ sql: query });
|
||||
|
||||
if (directError) {
|
||||
console.error('Fehler beim Erstellen der execute_sql-Funktion:', directError.message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
console.log('execute_sql-Funktion erfolgreich erstellt.');
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error('Unerwarteter Fehler:', error.message);
|
||||
return false;
|
||||
}
|
||||
|
||||
const { error } = await supabase.rpc('execute_sql', { query });
|
||||
|
||||
if (error) {
|
||||
// Die Funktion existiert möglicherweise noch nicht, versuche direkte SQL-Ausführung
|
||||
console.log('Versuche direkte SQL-Ausführung...');
|
||||
|
||||
const { error: directError } = await supabase.from('_exec_sql').insert({ sql: query });
|
||||
|
||||
if (directError) {
|
||||
console.error('Fehler beim Erstellen der execute_sql-Funktion:', directError.message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
console.log('execute_sql-Funktion erfolgreich erstellt.');
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error('Unerwarteter Fehler:', error.message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Hauptfunktion
|
||||
async function setupSupabase() {
|
||||
console.log('Starte Supabase-Setup...');
|
||||
|
||||
// Erstelle die execute_sql-Funktion
|
||||
const execSqlCreated = await createExecuteSqlFunction();
|
||||
|
||||
if (!execSqlCreated) {
|
||||
console.log('Konnte execute_sql-Funktion nicht erstellen. Versuche trotzdem fortzufahren...');
|
||||
}
|
||||
|
||||
// Führe die SQL-Dateien aus
|
||||
console.log('Führe Supabase-Funktionen-Setup aus...');
|
||||
await executeSqlFile('setup_supabase_functions.sql');
|
||||
|
||||
console.log('Führe Modell-Updates aus...');
|
||||
await executeSqlFile('update_models.sql');
|
||||
|
||||
console.log('Richte RLS-Richtlinien ein...');
|
||||
await executeSqlFile('setup_rls_policies.sql');
|
||||
|
||||
console.log('Supabase-Setup abgeschlossen.');
|
||||
console.log('Starte Supabase-Setup...');
|
||||
|
||||
// Erstelle die execute_sql-Funktion
|
||||
const execSqlCreated = await createExecuteSqlFunction();
|
||||
|
||||
if (!execSqlCreated) {
|
||||
console.log('Konnte execute_sql-Funktion nicht erstellen. Versuche trotzdem fortzufahren...');
|
||||
}
|
||||
|
||||
// Führe die SQL-Dateien aus
|
||||
console.log('Führe Supabase-Funktionen-Setup aus...');
|
||||
await executeSqlFile('setup_supabase_functions.sql');
|
||||
|
||||
console.log('Führe Modell-Updates aus...');
|
||||
await executeSqlFile('update_models.sql');
|
||||
|
||||
console.log('Richte RLS-Richtlinien ein...');
|
||||
await executeSqlFile('setup_rls_policies.sql');
|
||||
|
||||
console.log('Supabase-Setup abgeschlossen.');
|
||||
}
|
||||
|
||||
// Führe die Funktion aus
|
||||
setupSupabase()
|
||||
.catch(error => {
|
||||
console.error('Unerwarteter Fehler:', error);
|
||||
})
|
||||
.finally(() => {
|
||||
process.exit(0);
|
||||
});
|
||||
.catch((error) => {
|
||||
console.error('Unerwarteter Fehler:', error);
|
||||
})
|
||||
.finally(() => {
|
||||
process.exit(0);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -9,75 +9,75 @@ const path = require('path');
|
|||
const { spawnSync } = require('child_process');
|
||||
const { createClient } = require('@supabase/supabase-js');
|
||||
|
||||
// Get environment variables
|
||||
// Get environment variables
|
||||
const SUPABASE_URL = process.env.SUPABASE_URL;
|
||||
const SUPABASE_SERVICE_KEY = process.env.SUPABASE_SERVICE_KEY;
|
||||
|
||||
if (!SUPABASE_URL || !SUPABASE_SERVICE_KEY) {
|
||||
console.error('Error: SUPABASE_URL and SUPABASE_SERVICE_KEY environment variables must be set');
|
||||
process.exit(1);
|
||||
console.error('Error: SUPABASE_URL and SUPABASE_SERVICE_KEY environment variables must be set');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Create Supabase client
|
||||
const supabase = createClient(SUPABASE_URL, SUPABASE_SERVICE_KEY, {
|
||||
auth: {
|
||||
autoRefreshToken: false,
|
||||
persistSession: false
|
||||
}
|
||||
auth: {
|
||||
autoRefreshToken: false,
|
||||
persistSession: false,
|
||||
},
|
||||
});
|
||||
|
||||
async function executeSQL(filename) {
|
||||
try {
|
||||
const filePath = path.join(__dirname, filename);
|
||||
const sql = fs.readFileSync(filePath, 'utf8');
|
||||
|
||||
// Split the SQL file by semicolons to get individual statements
|
||||
const statements = sql
|
||||
.split(';')
|
||||
.map(statement => statement.trim())
|
||||
.filter(statement => statement.length > 0);
|
||||
try {
|
||||
const filePath = path.join(__dirname, filename);
|
||||
const sql = fs.readFileSync(filePath, 'utf8');
|
||||
|
||||
console.log(`Executing ${statements.length} statements from ${filename}...`);
|
||||
|
||||
for (const statement of statements) {
|
||||
const { error } = await supabase.rpc('exec_sql', { sql: statement });
|
||||
|
||||
if (error) {
|
||||
console.error(`Error executing statement:`, error);
|
||||
console.error(`Statement was: ${statement.substring(0, 100)}...`);
|
||||
}
|
||||
}
|
||||
|
||||
console.log(`✅ Successfully executed ${filename}`);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error(`❌ Error executing ${filename}:`, error);
|
||||
return false;
|
||||
}
|
||||
// Split the SQL file by semicolons to get individual statements
|
||||
const statements = sql
|
||||
.split(';')
|
||||
.map((statement) => statement.trim())
|
||||
.filter((statement) => statement.length > 0);
|
||||
|
||||
console.log(`Executing ${statements.length} statements from ${filename}...`);
|
||||
|
||||
for (const statement of statements) {
|
||||
const { error } = await supabase.rpc('exec_sql', { sql: statement });
|
||||
|
||||
if (error) {
|
||||
console.error(`Error executing statement:`, error);
|
||||
console.error(`Statement was: ${statement.substring(0, 100)}...`);
|
||||
}
|
||||
}
|
||||
|
||||
console.log(`✅ Successfully executed ${filename}`);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error(`❌ Error executing ${filename}:`, error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
async function main() {
|
||||
console.log('Setting up spaces feature...');
|
||||
|
||||
// Run the SQL scripts in the correct order
|
||||
const scripts = [
|
||||
'create_spaces_tables.sql',
|
||||
'create_spaces_triggers.sql',
|
||||
'create_spaces_rls.sql'
|
||||
];
|
||||
|
||||
for (const script of scripts) {
|
||||
const success = await executeSQL(script);
|
||||
if (!success) {
|
||||
console.error(`Failed to execute ${script}. Aborting.`);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
console.log('✅ Spaces feature setup complete!');
|
||||
console.log('Setting up spaces feature...');
|
||||
|
||||
// Run the SQL scripts in the correct order
|
||||
const scripts = [
|
||||
'create_spaces_tables.sql',
|
||||
'create_spaces_triggers.sql',
|
||||
'create_spaces_rls.sql',
|
||||
];
|
||||
|
||||
for (const script of scripts) {
|
||||
const success = await executeSQL(script);
|
||||
if (!success) {
|
||||
console.error(`Failed to execute ${script}. Aborting.`);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
console.log('✅ Spaces feature setup complete!');
|
||||
}
|
||||
|
||||
main().catch(err => {
|
||||
console.error('Unhandled error:', err);
|
||||
process.exit(1);
|
||||
});
|
||||
main().catch((err) => {
|
||||
console.error('Unhandled error:', err);
|
||||
process.exit(1);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -17,148 +17,150 @@ const supabaseUrl = process.env.EXPO_PUBLIC_SUPABASE_URL;
|
|||
const supabaseKey = process.env.EXPO_PUBLIC_SUPABASE_ANON_KEY;
|
||||
|
||||
if (!supabaseUrl || !supabaseKey) {
|
||||
console.error('Fehler: EXPO_PUBLIC_SUPABASE_URL und EXPO_PUBLIC_SUPABASE_ANON_KEY müssen in der .env-Datei definiert sein.');
|
||||
process.exit(1);
|
||||
console.error(
|
||||
'Fehler: EXPO_PUBLIC_SUPABASE_URL und EXPO_PUBLIC_SUPABASE_ANON_KEY müssen in der .env-Datei definiert sein.'
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const supabase = createClient(supabaseUrl, supabaseKey);
|
||||
|
||||
// Readline-Interface für interaktive Eingabe
|
||||
const rl = readline.createInterface({
|
||||
input: process.stdin,
|
||||
output: process.stdout
|
||||
input: process.stdin,
|
||||
output: process.stdout,
|
||||
});
|
||||
|
||||
// Funktion zum Ausführen einer SQL-Abfrage
|
||||
async function executeQuery(query) {
|
||||
try {
|
||||
console.log(`Führe Abfrage aus: ${query}`);
|
||||
const { data, error } = await supabase.rpc('execute_sql', { query });
|
||||
|
||||
if (error) {
|
||||
console.error('Fehler bei der Ausführung der Abfrage:', error.message);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('Ergebnis:');
|
||||
console.table(data);
|
||||
} catch (error) {
|
||||
console.error('Unerwarteter Fehler:', error.message);
|
||||
}
|
||||
try {
|
||||
console.log(`Führe Abfrage aus: ${query}`);
|
||||
const { data, error } = await supabase.rpc('execute_sql', { query });
|
||||
|
||||
if (error) {
|
||||
console.error('Fehler bei der Ausführung der Abfrage:', error.message);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('Ergebnis:');
|
||||
console.table(data);
|
||||
} catch (error) {
|
||||
console.error('Unerwarteter Fehler:', error.message);
|
||||
}
|
||||
}
|
||||
|
||||
// Funktion zum Ausführen einer SQL-Datei
|
||||
async function executeFile(filePath) {
|
||||
try {
|
||||
const fullPath = join(process.cwd(), filePath);
|
||||
console.log(`Führe SQL-Datei aus: ${fullPath}`);
|
||||
|
||||
if (!fs.existsSync(fullPath)) {
|
||||
console.error(`Fehler: Datei ${fullPath} existiert nicht.`);
|
||||
return;
|
||||
}
|
||||
|
||||
const query = fs.readFileSync(fullPath, 'utf8');
|
||||
await executeQuery(query);
|
||||
} catch (error) {
|
||||
console.error('Fehler beim Lesen oder Ausführen der Datei:', error.message);
|
||||
}
|
||||
try {
|
||||
const fullPath = join(process.cwd(), filePath);
|
||||
console.log(`Führe SQL-Datei aus: ${fullPath}`);
|
||||
|
||||
if (!fs.existsSync(fullPath)) {
|
||||
console.error(`Fehler: Datei ${fullPath} existiert nicht.`);
|
||||
return;
|
||||
}
|
||||
|
||||
const query = fs.readFileSync(fullPath, 'utf8');
|
||||
await executeQuery(query);
|
||||
} catch (error) {
|
||||
console.error('Fehler beim Lesen oder Ausführen der Datei:', error.message);
|
||||
}
|
||||
}
|
||||
|
||||
// Funktion zum Anzeigen der Tabellenliste
|
||||
async function listTables() {
|
||||
try {
|
||||
const query = `
|
||||
try {
|
||||
const query = `
|
||||
SELECT table_name
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'public'
|
||||
ORDER BY table_name;
|
||||
`;
|
||||
|
||||
const { data, error } = await supabase.rpc('execute_sql', { query });
|
||||
|
||||
if (error) {
|
||||
console.error('Fehler beim Abrufen der Tabellenliste:', error.message);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('Verfügbare Tabellen:');
|
||||
data.forEach((row, index) => {
|
||||
console.log(`${index + 1}. ${row.table_name}`);
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Unerwarteter Fehler:', error.message);
|
||||
}
|
||||
|
||||
const { data, error } = await supabase.rpc('execute_sql', { query });
|
||||
|
||||
if (error) {
|
||||
console.error('Fehler beim Abrufen der Tabellenliste:', error.message);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('Verfügbare Tabellen:');
|
||||
data.forEach((row, index) => {
|
||||
console.log(`${index + 1}. ${row.table_name}`);
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Unerwarteter Fehler:', error.message);
|
||||
}
|
||||
}
|
||||
|
||||
// Funktion zum Anzeigen der Tabellenstruktur
|
||||
async function describeTable(tableName) {
|
||||
try {
|
||||
const query = `
|
||||
try {
|
||||
const query = `
|
||||
SELECT column_name, data_type, is_nullable
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'public' AND table_name = '${tableName}'
|
||||
ORDER BY ordinal_position;
|
||||
`;
|
||||
|
||||
const { data, error } = await supabase.rpc('execute_sql', { query });
|
||||
|
||||
if (error) {
|
||||
console.error(`Fehler beim Beschreiben der Tabelle ${tableName}:`, error.message);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`Struktur der Tabelle ${tableName}:`);
|
||||
console.table(data);
|
||||
} catch (error) {
|
||||
console.error('Unerwarteter Fehler:', error.message);
|
||||
}
|
||||
|
||||
const { data, error } = await supabase.rpc('execute_sql', { query });
|
||||
|
||||
if (error) {
|
||||
console.error(`Fehler beim Beschreiben der Tabelle ${tableName}:`, error.message);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`Struktur der Tabelle ${tableName}:`);
|
||||
console.table(data);
|
||||
} catch (error) {
|
||||
console.error('Unerwarteter Fehler:', error.message);
|
||||
}
|
||||
}
|
||||
|
||||
// Hauptmenü
|
||||
function showMenu() {
|
||||
console.log('\n--- Supabase CLI ---');
|
||||
console.log('1. SQL-Abfrage ausführen');
|
||||
console.log('2. SQL-Datei ausführen');
|
||||
console.log('3. Tabellenliste anzeigen');
|
||||
console.log('4. Tabellenstruktur anzeigen');
|
||||
console.log('5. Beenden');
|
||||
|
||||
rl.question('\nWähle eine Option (1-5): ', async (answer) => {
|
||||
switch (answer.trim()) {
|
||||
case '1':
|
||||
rl.question('Gib deine SQL-Abfrage ein: ', async (query) => {
|
||||
await executeQuery(query);
|
||||
showMenu();
|
||||
});
|
||||
break;
|
||||
case '2':
|
||||
rl.question('Gib den Pfad zur SQL-Datei ein: ', async (filePath) => {
|
||||
await executeFile(filePath);
|
||||
showMenu();
|
||||
});
|
||||
break;
|
||||
case '3':
|
||||
await listTables();
|
||||
showMenu();
|
||||
break;
|
||||
case '4':
|
||||
rl.question('Gib den Tabellennamen ein: ', async (tableName) => {
|
||||
await describeTable(tableName);
|
||||
showMenu();
|
||||
});
|
||||
break;
|
||||
case '5':
|
||||
console.log('Auf Wiedersehen!');
|
||||
rl.close();
|
||||
process.exit(0);
|
||||
break;
|
||||
default:
|
||||
console.log('Ungültige Option. Bitte wähle 1-5.');
|
||||
showMenu();
|
||||
break;
|
||||
}
|
||||
});
|
||||
console.log('\n--- Supabase CLI ---');
|
||||
console.log('1. SQL-Abfrage ausführen');
|
||||
console.log('2. SQL-Datei ausführen');
|
||||
console.log('3. Tabellenliste anzeigen');
|
||||
console.log('4. Tabellenstruktur anzeigen');
|
||||
console.log('5. Beenden');
|
||||
|
||||
rl.question('\nWähle eine Option (1-5): ', async (answer) => {
|
||||
switch (answer.trim()) {
|
||||
case '1':
|
||||
rl.question('Gib deine SQL-Abfrage ein: ', async (query) => {
|
||||
await executeQuery(query);
|
||||
showMenu();
|
||||
});
|
||||
break;
|
||||
case '2':
|
||||
rl.question('Gib den Pfad zur SQL-Datei ein: ', async (filePath) => {
|
||||
await executeFile(filePath);
|
||||
showMenu();
|
||||
});
|
||||
break;
|
||||
case '3':
|
||||
await listTables();
|
||||
showMenu();
|
||||
break;
|
||||
case '4':
|
||||
rl.question('Gib den Tabellennamen ein: ', async (tableName) => {
|
||||
await describeTable(tableName);
|
||||
showMenu();
|
||||
});
|
||||
break;
|
||||
case '5':
|
||||
console.log('Auf Wiedersehen!');
|
||||
rl.close();
|
||||
process.exit(0);
|
||||
break;
|
||||
default:
|
||||
console.log('Ungültige Option. Bitte wähle 1-5.');
|
||||
showMenu();
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Starte das Programm
|
||||
|
|
|
|||
|
|
@ -15,98 +15,95 @@ const supabaseUrl = process.env.EXPO_PUBLIC_SUPABASE_URL;
|
|||
const supabaseKey = process.env.EXPO_PUBLIC_SUPABASE_ANON_KEY;
|
||||
|
||||
if (!supabaseUrl || !supabaseKey) {
|
||||
console.error('Fehler: EXPO_PUBLIC_SUPABASE_URL und EXPO_PUBLIC_SUPABASE_ANON_KEY müssen in der .env-Datei definiert sein.');
|
||||
process.exit(1);
|
||||
console.error(
|
||||
'Fehler: EXPO_PUBLIC_SUPABASE_URL und EXPO_PUBLIC_SUPABASE_ANON_KEY müssen in der .env-Datei definiert sein.'
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const supabase = createClient(supabaseUrl, supabaseKey);
|
||||
|
||||
// Modelle, die wir in die Datenbank einfügen wollen
|
||||
const models = [
|
||||
{
|
||||
id: '550e8400-e29b-41d4-a716-446655440000',
|
||||
name: 'GPT-O3-Mini',
|
||||
description: 'Azure OpenAI O3-Mini: Effizientes Modell für schnelle Antworten.',
|
||||
parameters: {
|
||||
temperature: 0.7,
|
||||
max_tokens: 800,
|
||||
provider: 'azure',
|
||||
deployment: 'gpt-o3-mini-se',
|
||||
endpoint: 'https://memoroseopenai.openai.azure.com',
|
||||
api_version: '2024-12-01-preview'
|
||||
}
|
||||
},
|
||||
{
|
||||
id: '550e8400-e29b-41d4-a716-446655440004',
|
||||
name: 'GPT-4o-Mini',
|
||||
description: 'Azure OpenAI GPT-4o-Mini: Kompaktes, leistungsstarkes KI-Modell.',
|
||||
parameters: {
|
||||
temperature: 0.7,
|
||||
max_tokens: 1000,
|
||||
provider: 'azure',
|
||||
deployment: 'gpt-4o-mini-se',
|
||||
endpoint: 'https://memoroseopenai.openai.azure.com',
|
||||
api_version: '2024-12-01-preview'
|
||||
}
|
||||
},
|
||||
{
|
||||
id: '550e8400-e29b-41d4-a716-446655440005',
|
||||
name: 'GPT-4o',
|
||||
description: 'Azure OpenAI GPT-4o: Das fortschrittlichste multimodale KI-Modell.',
|
||||
parameters: {
|
||||
temperature: 0.7,
|
||||
max_tokens: 1200,
|
||||
provider: 'azure',
|
||||
deployment: 'gpt-4o-se',
|
||||
endpoint: 'https://memoroseopenai.openai.azure.com',
|
||||
api_version: '2024-12-01-preview'
|
||||
}
|
||||
}
|
||||
{
|
||||
id: '550e8400-e29b-41d4-a716-446655440000',
|
||||
name: 'GPT-O3-Mini',
|
||||
description: 'Azure OpenAI O3-Mini: Effizientes Modell für schnelle Antworten.',
|
||||
parameters: {
|
||||
temperature: 0.7,
|
||||
max_tokens: 800,
|
||||
provider: 'azure',
|
||||
deployment: 'gpt-o3-mini-se',
|
||||
endpoint: 'https://memoroseopenai.openai.azure.com',
|
||||
api_version: '2024-12-01-preview',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: '550e8400-e29b-41d4-a716-446655440004',
|
||||
name: 'GPT-4o-Mini',
|
||||
description: 'Azure OpenAI GPT-4o-Mini: Kompaktes, leistungsstarkes KI-Modell.',
|
||||
parameters: {
|
||||
temperature: 0.7,
|
||||
max_tokens: 1000,
|
||||
provider: 'azure',
|
||||
deployment: 'gpt-4o-mini-se',
|
||||
endpoint: 'https://memoroseopenai.openai.azure.com',
|
||||
api_version: '2024-12-01-preview',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: '550e8400-e29b-41d4-a716-446655440005',
|
||||
name: 'GPT-4o',
|
||||
description: 'Azure OpenAI GPT-4o: Das fortschrittlichste multimodale KI-Modell.',
|
||||
parameters: {
|
||||
temperature: 0.7,
|
||||
max_tokens: 1200,
|
||||
provider: 'azure',
|
||||
deployment: 'gpt-4o-se',
|
||||
endpoint: 'https://memoroseopenai.openai.azure.com',
|
||||
api_version: '2024-12-01-preview',
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
async function updateModels() {
|
||||
console.log('Aktualisiere Modelle in der Supabase-Datenbank...');
|
||||
|
||||
// Prüfe, ob die Tabelle existiert
|
||||
const { error: tableError } = await supabase
|
||||
.from('models')
|
||||
.select('id')
|
||||
.limit(1);
|
||||
|
||||
if (tableError) {
|
||||
console.error('Fehler beim Zugriff auf die models-Tabelle:', tableError.message);
|
||||
console.log('Erstelle models-Tabelle...');
|
||||
|
||||
// Erstelle die Tabelle, falls sie nicht existiert
|
||||
const { error: createError } = await supabase.rpc('create_models_table');
|
||||
|
||||
if (createError) {
|
||||
console.error('Fehler beim Erstellen der models-Tabelle:', createError.message);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Füge die Modelle ein oder aktualisiere sie
|
||||
for (const model of models) {
|
||||
const { error } = await supabase
|
||||
.from('models')
|
||||
.upsert(model, { onConflict: 'id' });
|
||||
|
||||
if (error) {
|
||||
console.error(`Fehler beim Aktualisieren des Modells ${model.name}:`, error.message);
|
||||
} else {
|
||||
console.log(`Modell ${model.name} erfolgreich aktualisiert.`);
|
||||
}
|
||||
}
|
||||
|
||||
console.log('Modellaktualisierung abgeschlossen.');
|
||||
console.log('Aktualisiere Modelle in der Supabase-Datenbank...');
|
||||
|
||||
// Prüfe, ob die Tabelle existiert
|
||||
const { error: tableError } = await supabase.from('models').select('id').limit(1);
|
||||
|
||||
if (tableError) {
|
||||
console.error('Fehler beim Zugriff auf die models-Tabelle:', tableError.message);
|
||||
console.log('Erstelle models-Tabelle...');
|
||||
|
||||
// Erstelle die Tabelle, falls sie nicht existiert
|
||||
const { error: createError } = await supabase.rpc('create_models_table');
|
||||
|
||||
if (createError) {
|
||||
console.error('Fehler beim Erstellen der models-Tabelle:', createError.message);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Füge die Modelle ein oder aktualisiere sie
|
||||
for (const model of models) {
|
||||
const { error } = await supabase.from('models').upsert(model, { onConflict: 'id' });
|
||||
|
||||
if (error) {
|
||||
console.error(`Fehler beim Aktualisieren des Modells ${model.name}:`, error.message);
|
||||
} else {
|
||||
console.log(`Modell ${model.name} erfolgreich aktualisiert.`);
|
||||
}
|
||||
}
|
||||
|
||||
console.log('Modellaktualisierung abgeschlossen.');
|
||||
}
|
||||
|
||||
// Führe die Funktion aus
|
||||
updateModels()
|
||||
.catch(error => {
|
||||
console.error('Unerwarteter Fehler:', error);
|
||||
})
|
||||
.finally(() => {
|
||||
process.exit(0);
|
||||
});
|
||||
.catch((error) => {
|
||||
console.error('Unerwarteter Fehler:', error);
|
||||
})
|
||||
.finally(() => {
|
||||
process.exit(0);
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue