tauri-app-sql
$
npx mdskill add partme-ai/full-stack-skills/tauri-app-sqlEnables frontend database access in Tauri apps using SQLite, MySQL, or PostgreSQL with migrations and scoped queries.
- Helps set up database connections, run SQL migrations, and execute queries from the frontend.
- Integrates with the Tauri v2 SQL plugin and supports SQLite, MySQL, and PostgreSQL databases.
- Triggers on mentions of SQL, database types, migrations, or related phrases like 'db plugin'.
- Provides code examples for installation, configuration, and querying in Rust and TypeScript.
SKILL.md
.github/skills/tauri-app-sqlView on GitHub ↗
---
name: tauri-app-sql
description: "Access SQLite, MySQL, or PostgreSQL databases from the frontend using the Tauri v2 SQL plugin with migrations. Use when setting up a database connection, running SQL migrations, or executing queries with scoped access from the frontend."
license: Complete terms in LICENSE.txt
---
## When to use this skill
**ALWAYS use this skill when the user mentions:**
- Using SQLite, MySQL, or PostgreSQL in a Tauri app
- SQL migrations or database schema setup
- Running queries from the frontend
**Trigger phrases include:**
- "sql", "sqlite", "database", "postgres", "mysql", "migration", "db plugin"
## How to use this skill
1. **Install the SQL plugin** (with SQLite feature):
```bash
cargo add tauri-plugin-sql --features sqlite
```
2. **Register the plugin** with migrations in your Tauri builder:
```rust
use tauri_plugin_sql::{Migration, MigrationKind};
let migrations = vec![Migration {
version: 1, description: "create_users", sql: "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT NOT NULL);",
kind: MigrationKind::Up,
}];
tauri::Builder::default()
.plugin(tauri_plugin_sql::Builder::new().add_migrations("sqlite:app.db", migrations).build())
```
3. **Configure capabilities** in `src-tauri/capabilities/default.json`:
```json
{ "permissions": ["sql:allow-load", "sql:allow-execute", "sql:allow-select"] }
```
4. **Query from the frontend**:
```typescript
import Database from '@tauri-apps/plugin-sql';
const db = await Database.load('sqlite:app.db');
await db.execute('INSERT INTO users (name) VALUES (?)', ['Alice']);
const users = await db.select<{ id: number; name: string }[]>('SELECT * FROM users');
```
5. **Use parameterized queries** to prevent SQL injection
6. **Keep migrations versioned** and run them automatically on app startup
## Outputs
- SQL plugin setup with SQLite/Postgres/MySQL
- Migration system with versioned schemas
- Frontend query patterns with parameterized inputs
## References
- https://v2.tauri.app/plugin/sql/
## Keywords
tauri sql, sqlite, database, postgres, mysql, migrations, queries