Skip to content

docs: add SQL-to-FalkorDB online migration guide#381

Open
shahar-biron wants to merge 5 commits intomainfrom
docs/sql-to-falkordb-migration
Open

docs: add SQL-to-FalkorDB online migration guide#381
shahar-biron wants to merge 5 commits intomainfrom
docs/sql-to-falkordb-migration

Conversation

@shahar-biron
Copy link
Contributor

@shahar-biron shahar-biron commented Mar 1, 2026

Adds documentation for DM-SQL-to-FalkorDB online migration/incremental sync from SQL sources (PostgreSQL, Snowflake, Databricks) into FalkorDB, and links it from the Migration index.

Co-Authored-By: Oz oz-agent@warp.dev

Summary by CodeRabbit

  • Documentation
    • Expanded migration docs to include online migration from SQL sources and ongoing incremental sync capabilities.
    • Added a comprehensive guide for migrating from PostgreSQL, Snowflake, and Databricks to FalkorDB covering prerequisites, tooling, run modes (one-shot and daemon), control-plane options, configuration, and operational best practices.
  • Chores
    • Updated terminology list to recognize "Databricks".

Co-Authored-By: Oz <oz-agent@warp.dev>
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 1, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2150eb0 and 2351485.

📒 Files selected for processing (2)
  • .wordlist.txt
  • operations/migration/sql-to-falkordb.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • operations/migration/sql-to-falkordb.md

📝 Walkthrough

Walkthrough

Updated migration docs to include online SQL-to-FalkorDB migration: migration index metadata/introduction now references SQL sources and incremental syncing; added a new guide describing supported SQL sources (Postgres, Snowflake, Databricks), loader concepts, run modes, optional control plane, configuration, and operational guidance.

Changes

Cohort / File(s) Summary
Migration index
operations/migration/index.md
Updated metadata and introduction to include SQL sources as migration targets and mention online/incremental syncing.
SQL-to-FalkorDB guide
operations/migration/sql-to-falkordb.md
New comprehensive guide covering supported SQL sources, DM-SQL-to-FalkorDB loader concepts (declarative mappings, idempotent upserts, incremental watermarks, state), run modes (one-shot, daemon), optional control plane, configuration, tooling, prerequisites, and operational tips.
Wordlist
.wordlist.txt
Added the term Databricks to the wordlist.

Sequence Diagram(s)

sequenceDiagram
  participant SQL as SQL Source (Postgres / Snowflake / Databricks)
  participant Loader as DM-SQL-to-FalkorDB Loader
  participant Control as Optional Control Plane
  participant Falkor as FalkorDB

  SQL->>Loader: Read initial snapshot or incremental changes
  alt Control plane enabled
    Loader->>Control: Register job / exchange config & state
    Control->>Loader: Provide directives / schedule
  end
  Loader->>Falkor: Transform and upsert records (idempotent)
  Falkor-->>Loader: Acknowledge upserts / return status
  Loader->>Loader: Persist watermark/state for next run
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 I hopped from rows to nodes today,
Mapping tables bright and gay,
Postgres, Snowflake, Databricks in flight,
FalkorDB welcomes data's light —
Sync and cheer, I bound away 🎉

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'docs: add SQL-to-FalkorDB online migration guide' directly and accurately summarizes the main change: adding a new documentation guide for SQL-to-FalkorDB online migration.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch docs/sql-to-falkordb-migration

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
operations/migration/sql-to-falkordb.md (1)

31-54: Consider standardizing example phrasing.

The document uses both "(for example ...)" (lines 31, 34) and "such as" (line 54) when providing examples. For consistency and brevity in technical documentation, consider standardizing on "e.g." throughout.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@operations/migration/sql-to-falkordb.md` around lines 31 - 54, Summary:
Inconsistent example phrasing—mixes "(for example ...)", "such as", and "for
example"—standardize to "e.g." across the document. Fix: replace occurrences of
"(for example `falkor://127.0.0.1:6379`)" and "(for example `$POSTGRES_URL`,
`$DATABRICKS_TOKEN`, etc.)" and "such as `updated_at`" with "e.g.
`falkor://127.0.0.1:6379`", "e.g. `$POSTGRES_URL`, `$DATABRICKS_TOKEN`", and
"e.g. `updated_at`" respectively (look for those exact phrases in the markdown
around the headings and the bullet points describing loaders and configuration).
Ensure spacing and punctuation follow the chosen "e.g." style consistently
throughout the file.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@operations/migration/sql-to-falkordb.md`:
- Line 31: Update the example FalkorDB endpoint URI to use the standard Redis
scheme: replace any occurrence of "falkor://127.0.0.1:6379" with
"redis://127.0.0.1:6379" so the migration docs and connection examples follow
FalkorDB's authoritative connection-string format (use "redis://" as the scheme
in the operations/migration/sql-to-falkordb.md example).
- Around line 68-109: The documentation sections referencing external repos
(PostgreSQL-to-FalkorDB/README.md, Snowflake-to-FalkorDB/README.md,
Databricks-to-FalkorDB and the "Snowflake → FalkorDB" / "Databricks → FalkorDB"
sections) point to non-existent or unverifiable GitHub repositories; update
these sections to either remove the broken links and instructions or replace
them with valid, publicly accessible migration tool links and README paths, and
if these are internal tools, explicitly state access requirements (e.g.,
internal repo URL, contact person, or steps to request access) and provide
alternative public migration guidance and commands so the instructions remain
accurate and actionable.

---

Nitpick comments:
In `@operations/migration/sql-to-falkordb.md`:
- Around line 31-54: Summary: Inconsistent example phrasing—mixes "(for example
...)", "such as", and "for example"—standardize to "e.g." across the document.
Fix: replace occurrences of "(for example `falkor://127.0.0.1:6379`)" and "(for
example `$POSTGRES_URL`, `$DATABRICKS_TOKEN`, etc.)" and "such as `updated_at`"
with "e.g. `falkor://127.0.0.1:6379`", "e.g. `$POSTGRES_URL`,
`$DATABRICKS_TOKEN`", and "e.g. `updated_at`" respectively (look for those exact
phrases in the markdown around the headings and the bullet points describing
loaders and configuration). Ensure spacing and punctuation follow the chosen
"e.g." style consistently throughout the file.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9b21c87 and ca95975.

📒 Files selected for processing (2)
  • operations/migration/index.md
  • operations/migration/sql-to-falkordb.md


- Rust toolchain (Cargo)
- Network access to your SQL source
- A reachable FalkorDB endpoint (for example `falkor://127.0.0.1:6379`)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Search for FalkorDB endpoint format examples in the codebase
echo "=== Searching for falkor:// patterns ==="
rg -n 'falkor://' --type md --type txt

echo -e "\n=== Searching for FalkorDB connection examples ==="
rg -n -i 'falkor.*endpoint\|falkor.*connection' --type md --type txt -A 2

echo -e "\n=== Searching for Redis-style endpoints ==="
rg -n 'redis://.*6379\|falkor://' --type md --type txt

Repository: FalkorDB/docs

Length of output: 1361


🌐 Web query:

FalkorDB connection string URI scheme official documentation

💡 Result:

FalkorDB’s official docs show that the standard connection-string URI scheme is the Redis URI scheme:

  • redis://<host>:<port> (example/default: redis://localhost:6379; “Check the FALKORDB_URI format: redis://hostname:port”). [1]
  • The docs also show using a Redis URL with tools like redis-cli -u <FALKORDB_PUBLIC_URL>. [2]
  • Some FalkorDB-adjacent tooling documented on the FalkorDB site (Graphiti) uses falkor://<host>:<port> as a “FalkorDB connection string” in examples. [3]

Sources:
[1] (docs.falkordb.com)
[2] (docs.falkordb.com)
[3] (docs.falkordb.com)

Citations:


Use the standard Redis URI scheme for the FalkorDB endpoint.

Change falkor://127.0.0.1:6379 to redis://127.0.0.1:6379. Official FalkorDB documentation specifies redis:// as the standard connection-string URI scheme, not falkor://. While some FalkorDB tooling may accept the falkor:// scheme, the authoritative format is redis://hostname:port.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@operations/migration/sql-to-falkordb.md` at line 31, Update the example
FalkorDB endpoint URI to use the standard Redis scheme: replace any occurrence
of "falkor://127.0.0.1:6379" with "redis://127.0.0.1:6379" so the migration docs
and connection examples follow FalkorDB's authoritative connection-string format
(use "redis://" as the scheme in the operations/migration/sql-to-falkordb.md
example).

Comment on lines +68 to +109
- Tool docs: [PostgreSQL-to-FalkorDB/README.md](https://github.com/FalkorDB/DM-SQL-to-FalkorDB/tree/main/PostgreSQL-to-FalkorDB)

Build and run (from the crate directory):

```bash
cd PostgreSQL-to-FalkorDB/postgres-to-falkordb
cargo build --release

# One-shot run
cargo run --release -- --config path/to/config.yaml
```

Continuous sync (daemon mode):

```bash
cargo run --release -- --config path/to/config.yaml --daemon --interval-secs 60
```

### Snowflake → FalkorDB

- Tool docs: [Snowflake-to-FalkorDB/README.md](https://github.com/FalkorDB/DM-SQL-to-FalkorDB/tree/main/Snowflake-to-FalkorDB)

```bash
cd Snowflake-to-FalkorDB
cargo build --release

# One-shot run
cargo run --release -- --config path/to/config.yaml

# Continuous sync
cargo run --release -- --config path/to/config.yaml --daemon --interval-secs 300
```

### Databricks → FalkorDB

- Tool docs: [Databricks-to-FalkorDB/README.md](https://github.com/FalkorDB/DM-SQL-to-FalkorDB/tree/main/Databricks-to-FalkorDB)

```bash
cd Databricks-to-FalkorDB/databricks-to-falkordb
cargo build --release
cargo run --release -- --config path/to/config.yaml
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🌐 Web query:

DM-SQL-to-FalkorDB GitHub repository structure PostgreSQL Snowflake Databricks

💡 Result:

I couldn’t find any public GitHub repository named DM-SQL-to-FalkorDB (or close variants like SQL-to-FalkorDB) via web search, so I can’t verify its repo structure or how it targets PostgreSQL / Snowflake / Databricks. If you share the GitHub URL (or confirm it’s private/renamed), I can map the exact structure.

Closest public FalkorDB repos that match the “SQL ↔ FalkorDB” theme:

  • FalkorDB/QueryWeaver (Text2SQL). Top-level structure includes: .github/, api/ (FastAPI backend), app/ (TypeScript frontend), docs/, e2e/, tests/, plus Dockerfile, Makefile, Pipfile, etc. [1]
  • FalkorDB/falkordb-bulk-loader (CSV → FalkorDB bulk load). The Python package/script lives under falkordb_bulk_loader/ (invoked via falkordb_bulk_insert / bulk_insert.py). [2]

If your intent is “DM SQL” as in SqlDBM data-model SQL/DDL, SqlDBM explicitly supports PostgreSQL, Snowflake, and Databricks (among others). [3]

Sources: [1] [2] [3]


🌐 Web query:

FalkorDB DM-SQL-to-FalkorDB PostgreSQL-to-FalkorDB directory structure

💡 Result:

I couldn’t find any public FalkorDB repositories (or docs pages) named DM-SQL-to-FalkorDB or PostgreSQL-to-FalkorDB, nor any directories with those names under the FalkorDB GitHub organization—so I can’t reliably describe their directory structures from public sources. (github.com)

What I can point to (closest public analogs) are FalkorDB’s published migration repos/docs:

  • FalkorDB/migrate-neo4j-falkordb (example migration pipeline) directory structure:
    • migrate.py
    • data/neo4j_data/, data/sample_data/
    • migrate/ (export_from_neo4j.py, create_falkordb_graph.py, compare_graphs.py)
    • utils/ (helpers like create_neo4j_graph.py, reset scripts, end-to-end runner) (github.com)
  • FalkorDB migration docs list supported public migration guides (RedisGraph, Neo4j, Kuzu, RDF), but nothing about “DM-SQL” or “PostgreSQL-to-FalkorDB” as a named tool/repo. (docs.falkordb.com)

If you paste the GitHub links (or repo root file listing) for DM-SQL-to-FalkorDB and PostgreSQL-to-FalkorDB, I can map their exact directory structures precisely.

Citations:


The referenced external repositories (DM-SQL-to-FalkorDB and related tools) cannot be verified to exist.

Web search found no public GitHub repositories for DM-SQL-to-FalkorDB, PostgreSQL-to-FalkorDB, Snowflake-to-FalkorDB, or Databricks-to-FalkorDB. The documentation links to README files and directory paths in these repositories are likely broken. Either the repositories are private/renamed, or the documentation references non-existent tools. Remove or replace these sections with valid, publicly accessible migration tools and documentation. If these are internal FalkorDB tools not yet published, clarify access requirements or provide alternative instructions.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@operations/migration/sql-to-falkordb.md` around lines 68 - 109, The
documentation sections referencing external repos
(PostgreSQL-to-FalkorDB/README.md, Snowflake-to-FalkorDB/README.md,
Databricks-to-FalkorDB and the "Snowflake → FalkorDB" / "Databricks → FalkorDB"
sections) point to non-existent or unverifiable GitHub repositories; update
these sections to either remove the broken links and instructions or replace
them with valid, publicly accessible migration tool links and README paths, and
if these are internal tools, explicitly state access requirements (e.g.,
internal repo URL, contact person, or steps to request access) and provide
alternative public migration guidance and commands so the instructions remain
accurate and actionable.

shahar-biron and others added 3 commits March 1, 2026 07:59
Added screenshots demonstrating migration execution and log views.
Co-Authored-By: Oz <oz-agent@warp.dev>
Co-Authored-By: Oz <oz-agent@warp.dev>
@shahar-biron shahar-biron requested review from barakb and gkorland March 1, 2026 06:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants