MCPcopy Create free account
hub / github.com/AppFlowy-IO/AppFlowy-Collab / get_database_data

Method get_database_data

collab/src/database/database.rs:1521–1559  ·  view source on GitHub ↗

Collect full database data for duplication/import/export. If `include_embedded` is false, embedded views are excluded.

(
    &self,
    chunk_size: usize,
    auto_fetch: bool,
    include_embedded: bool,
  )

Source from the content-addressed store, hash-verified

1519 /// Collect full database data for duplication/import/export.
1520 /// If `include_embedded` is false, embedded views are excluded.
1521 pub async fn get_database_data(
1522 &self,
1523 chunk_size: usize,
1524 auto_fetch: bool,
1525 include_embedded: bool,
1526 ) -> Result<DatabaseData, CollabError> {
1527 let txn = self.collab.transact();
1528
1529 let database_id = self.body.get_database_id(&txn)?;
1530 let inline_view_id = self.body.get_inline_view_id(&txn);
1531 let views = self
1532 .body
1533 .views
1534 .get_all_views(&txn, include_embedded)
1535 .into_iter()
1536 .filter(|view| !view.is_inline)
1537 .collect();
1538 let fields = self.body.get_fields_in_view(&txn, &inline_view_id, None);
1539 let rows_stream = self.get_all_rows(chunk_size, None, auto_fetch).await?;
1540 let rows: Vec<Row> = rows_stream
1541 .filter_map(|result| async move { result.ok() })
1542 .collect()
1543 .await;
1544
1545 let mut row_metas = HashMap::with_capacity(rows.len());
1546 for row in &rows {
1547 if let Some(row_meta) = self.get_row_meta(&row.id).await {
1548 row_metas.insert(row.id, row_meta);
1549 }
1550 }
1551
1552 Ok(DatabaseData {
1553 database_id,
1554 fields,
1555 rows,
1556 views,
1557 row_metas,
1558 })
1559 }
1560
1561 pub fn get_view(&self, view_id: &str) -> Option<DatabaseView> {
1562 let txn = self.collab.transact();

Calls 9

get_database_idMethod · 0.80
into_iterMethod · 0.80
get_fields_in_viewMethod · 0.80
get_all_rowsMethod · 0.80
transactMethod · 0.45
get_inline_view_idMethod · 0.45
get_all_viewsMethod · 0.45
get_row_metaMethod · 0.45
insertMethod · 0.45