What’s new
6 highlights 01 Platform
New $29 and $49 monthly configurations
Start small with a fixed-price configuration: 25 GB for $29 a month or 50 GB for $49 a month. Nothing to size: pick one, pay by card in the console, and connect. The $29 configuration includes 20 GB of data transfer a month, and the $49 configuration includes 50 GB.
These configurations run on shared servers as a single node, with no high availability, standby copy or point-in-time restore.
02 Database
ORM apps match PostgreSQL on 154 of 165 checks
Django, SQLAlchemy and psycopg applications now see PostgreSQL-identical results on 154 of our 165 ORM compatibility checks. Joined columns carry the names PostgreSQL gives them, REAL values are true single-precision numbers, and drivers read each column's length and decimal precision from the result metadata. Sums of whole numbers are exact at any size, and AVG returns an exact NUMERIC, as in PostgreSQL.
Over PostgreSQL connections a joined column is now named as PostgreSQL names it (d, not t.d), so code that read row["t.d"] must read row["d"]. The HTTP /sql API, MySQL and SQL Server connections are unchanged. 11 of the 165 checks still differ from PostgreSQL.
03 Database
Concurrent updates to a row are all kept
When many PostgreSQL connections change the same row at the same moment, every update the server acknowledges is kept. A transaction that would overwrite a newer committed change is refused at COMMIT with PostgreSQL's standard serialization error (SQLSTATE 40001), and nothing from it is written, so your application can retry it.
SQL
UPDATE accounts SET balance = balance + 10 WHERE id = 1
PostgreSQL connections run at READ COMMITTED, PostgreSQL's default. Reading a value, computing in your app and writing the result back can still lose an update, exactly as in PostgreSQL: use a single UPDATE … SET x = x + n instead. This covers PostgreSQL connections only.
04 Console
Data Explorer shows every table
Every table now appears in the Data Explorer, including tables with capital letters or other characters in column names, a several-column or missing primary key, more than 50 columns or a TIME column, and search indexes. Tables the editor cannot safely change open read-only with a short reason, and a value the console cannot display no longer breaks the page. A CSV or JSON export imports back exactly: numbers keep every digit, and a number that cannot be stored without losing digits is refused with a clear message instead of being rounded.
Tables the editor cannot safely change yet open read-only. Exports leave out columns that the import cannot take.
05 Console
Redesigned Integrations and a demo workspace
Integrations is redesigned: tools are grouped and searchable, you pick the instance first, and each tool has its own setup dialog. Organization navigation is simpler: the organization-level Alerts, Logs and Performance pages are gone, and each instance keeps its own diagnostics. A public demo workspace, with a sample organization, instances and data, runs entirely in your browser, and the sign-in and sign-up pages link to it.
The demo uses sample data and cannot connect to real instances. Old bookmarks to the removed organization pages open Instances.
06 Developers
Span queries and URI search in the search API
The Elasticsearch-compatible API now answers span queries, such as span_term, span_near, span_or, span_not and span_containing, and URI search with q, df, default_operator and lenient on _search and _count. It also adds typed_keys, more _cat views, and index maintenance calls such as _flush, _cache/clear and _open.
URI search works on _search and _count only.