Настройка Appsmith для работы с базами данных
Appsmith подключается к реляционным и NoSQL базам данных напрямую. Для каждого источника настраивается отдельный Datasource с параметрами подключения.
Поддерживаемые базы данных
PostgreSQL, MySQL, MariaDB, Microsoft SQL Server, Oracle, MongoDB, Redis, Elasticsearch, Amazon S3, Google Sheets, DynamoDB.
PostgreSQL
В Appsmith → Explorer → Datasources → New Datasource → PostgreSQL:
Host: 10.0.1.50
Port: 5432
Database: production_db
Username: appsmith_user
Password: ****
SSL Mode: verify-full
SSL Certificate: [вставить cert]
Пользователь с минимальными правами:
CREATE USER appsmith_user WITH PASSWORD 'password';
GRANT CONNECT ON DATABASE production_db TO appsmith_user;
GRANT USAGE ON SCHEMA public TO appsmith_user;
-- Только нужные таблицы
GRANT SELECT, UPDATE ON users TO appsmith_user;
GRANT SELECT ON orders TO appsmith_user;
GRANT SELECT, INSERT ON support_notes TO appsmith_user;
Параметризованные запросы
-- Безопасный запрос с параметрами Appsmith
SELECT
id, email, name, status, plan,
created_at, last_login_at
FROM users
WHERE
({{ searchInput.text }} = '' OR
email ILIKE '%' || {{ searchInput.text }} || '%' OR
name ILIKE '%' || {{ searchInput.text }} || '%')
AND ({{ statusFilter.selectedOptionValue }} = 'ALL' OR
status = {{ statusFilter.selectedOptionValue }})
ORDER BY created_at DESC
LIMIT 50 OFFSET {{ (pageSelector.pageNo - 1) * 50 }}
MongoDB
// Appsmith MongoDB Query
{
"aggregate": "orders",
"pipeline": [
{ "$match": {
"customerId": "{{ userIdInput.text }}",
"status": { "$in": {{ statusFilter.selectedOptionValues }} }
}},
{ "$sort": { "createdAt": -1 } },
{ "$limit": 20 },
{ "$lookup": {
"from": "products",
"localField": "items.productId",
"foreignField": "_id",
"as": "productDetails"
}}
]
}
Prepared Statements
Appsmith автоматически использует prepared statements для SQL-запросов при включённой опции «Use Prepared Statements». Это предотвращает SQL-инъекции при подстановке пользовательского ввода.
Сроки
Подключение и первые 5–10 запросов — 1 день.







