Un bot che ricorda delle cose, come livelli, avvisi o impostazioni per server, ha bisogno di un posto dove tenerle. Il tuo piano bot include un database. Puoi usare anche un file come SQLite, che non richiede configurazione ma è più difficile da condividere tra due bot.
Crea il database
- Apri il tuo server nel pannello e clicca su Database nel menu a sinistra.
- Clicca su Nuovo database, scegli il tipo, aggiungi un'etichetta come
bot-datae clicca su Crea database. - Clicca sul database per vedere host, porta, nome del database, utente e password. Vedi Come usare i database con il tuo server per la pagina completa.
Tieni i dettagli fuori dal tuo codice
Metti i dettagli di connessione in un file che il tuo codice legge, come .env, e non fare il commit di quel file su git. In Files, crea .env:
DB_HOST=your-host
DB_PORT=3306
DB_NAME=your-database
DB_USER=your-user
DB_PASSWORD=your-password
Node.js (mysql2 e dotenv)
Aggiungi mysql2 e dotenv a package.json, poi:
require('dotenv').config();
const mysql = require('mysql2/promise');
const pool = mysql.createPool({
host: process.env.DB_HOST,
port: Number(process.env.DB_PORT),
database: process.env.DB_NAME,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
});
async function main() {
await pool.query('CREATE TABLE IF NOT EXISTS warnings (id INT AUTO_INCREMENT PRIMARY KEY, user_id VARCHAR(32), reason TEXT)');
const [rows] = await pool.query('SELECT COUNT(*) AS n FROM warnings');
console.log('warnings stored:', rows[0].n);
}
main();
Python (aiomysql)
Aggiungi aiomysql e python-dotenv a requirements.txt, poi:
import os
import aiomysql
from dotenv import load_dotenv
load_dotenv()
async def get_pool():
return await aiomysql.create_pool(
host=os.environ["DB_HOST"], port=int(os.environ["DB_PORT"]),
db=os.environ["DB_NAME"], user=os.environ["DB_USER"],
password=os.environ["DB_PASSWORD"], autocommit=True,
)
Da sapere
- Usa un pool di connessioni, non una nuova connessione per ogni comando.
- Passa sempre l'input dell'utente come parametri della query, mai unendo il testo dentro l'SQL.
- Includi il database nei tuoi backup: Come creare, scaricare e ripristinare i backup.
- Se il bot non riesce a connettersi, controlla host e porta confrontandoli con la pagina del database e che la password non abbia uno spazio di troppo.





