Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions src/routes/changelog/(entries)/2026-05-06.markdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
layout: changelog
title: "Databases: BigInt support for large integers"
date: 2026-05-06
---

Appwrite Databases now supports a **bigint** column type for both TablesDB and legacy Databases. Use `bigint` when you need to store 64-bit integer values that exceed the 32-bit range of the standard `integer` type.

BigInt columns support values from **-9,223,372,036,854,775,808** to **9,223,372,036,854,775,807**, making them ideal for:

- Timestamps in milliseconds
- Large counters and analytics metrics
- External IDs from third-party systems
- Financial calculations requiring large whole numbers

Create a BigInt column using the Console, Server SDKs, or CLI, just like any other column type. BigInt columns support `min`, `max`, and `default` value constraints.

{% arrow_link href="/docs/products/databases/tables" %}
Learn more about Databases column types
{% /arrow_link %}
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,7 @@ You can choose between the following types.
|--------------|------------------------------------------------------------------|
| `string` | String attribute. |
| `integer` | Integer attribute. |
| `bigint` | 64-bit integer attribute. Supports values from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807. Use for values that exceed 32-bit integer limits. |
| `float` | Float attribute. |
| `boolean` | Boolean attribute. |
| `datetime` | Datetime attribute formatted as an ISO 8601 string. |
Expand Down
52 changes: 52 additions & 0 deletions src/routes/docs/products/databases/tables/+page.markdoc
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,11 @@ const promise = tablesDB.createTable({
type: 'integer',
required: false
},
{
key: 'total_views',
type: 'bigint',
required: false
},
{
key: 'score',
type: 'float',
Expand Down Expand Up @@ -204,6 +209,11 @@ let promise = tablesDB.createTable({
type: 'integer',
required: false
},
{
key: 'total_views',
type: 'bigint',
required: false
},
{
key: 'score',
type: 'float',
Expand Down Expand Up @@ -338,6 +348,11 @@ $result = $tablesDB->createTable(
'type' => 'integer',
'required' => false
],
[
'key' => 'total_views',
'type' => 'bigint',
'required' => false
],
[
'key' => 'score',
'type' => 'float',
Expand Down Expand Up @@ -464,6 +479,11 @@ result = tablesDB.create_table(
'type': 'integer',
'required': False
},
{
'key': 'total_views',
'type': 'bigint',
'required': False
},
{
'key': 'score',
'type': 'float',
Expand Down Expand Up @@ -588,6 +608,11 @@ response = tablesDB.create_table(
type: 'integer',
required: false
},
{
key: 'total_views',
type: 'bigint',
required: false
},
{
key: 'score',
type: 'float',
Expand Down Expand Up @@ -722,6 +747,12 @@ Table result = await tablesDB.CreateTable(
{ "required", false }
},
new Dictionary<string, object>
{
{ "key", "total_views" },
{ "type", "bigint" },
{ "required", false }
},
new Dictionary<string, object>
{
{ "key", "score" },
{ "type", "float" },
Expand Down Expand Up @@ -859,6 +890,11 @@ void main() { // Init SDK
'type': 'integer',
'required': false
},
{
'key': 'total_views',
'type': 'bigint',
'required': false
},
{
'key': 'score',
'type': 'float',
Expand Down Expand Up @@ -990,6 +1026,11 @@ val response = tablesDB.createTable(
"type" to "integer",
"required" to false
),
mapOf(
"key" to "total_views",
"type" to "bigint",
"required" to false
),
mapOf(
"key" to "score",
"type" to "float",
Expand Down Expand Up @@ -1111,6 +1152,11 @@ List<Map<String, Object>> columns = Arrays.asList(
put("type", "integer");
put("required", false);
}},
new HashMap<String, Object>() {{
put("key", "total_views");
put("type", "bigint");
put("required", false);
}},
new HashMap<String, Object>() {{
put("key", "score");
put("type", "float");
Expand Down Expand Up @@ -1378,6 +1424,11 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
"type": "integer",
"required": false
}),
json!({
"key": "total_views",
"type": "bigint",
"required": false
}),
json!({
"key": "score",
"type": "float",
Expand Down Expand Up @@ -1517,6 +1568,7 @@ You can choose between the following types.
| `mediumtext` | Text column. Prefix indexing only. Maximum 4,194,303 characters. |
| `longtext` | Text column. Prefix indexing only. Maximum 1,073,741,823 characters. |
| `integer` | Integer column. |
| `bigint` | 64-bit integer column. Supports values from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807. Use for values that exceed 32-bit integer limits, such as timestamps in milliseconds, large counters, or external IDs. |
| `float` | Float column. |
| `boolean` | Boolean column. |
| `datetime` | Datetime column formatted as an ISO 8601 string. |
Expand Down
Loading