mcpField
S
surrealdb-python

surrealdb-python

github.com/surrealdbデータ・データベース28432 回インストール4 週間前に更新
リポジトリ

surrealdb-python について

surrealdb-pythonはSurrealDBを扱うPython SDKです。サーバー接続に加え、インメモリまたはファイル保存でプロセス内に組み込んで実行できます。

主な機能

  1. 01同期・非同期クライアント
  2. 02WebSocketによるサーバー接続
  3. 03組み込みインメモリデータベース
  4. 04組み込みファイル永続化

活用シーン

  1. 01PythonアプリケーションからSurrealDBサーバーへ接続
  2. 02Pythonプロセス内でSurrealDBを実行
  3. 03組み込みデータベースをファイルに永続化

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/surrealdb/agent-skills --skill surrealdb-python

インストール後、Claude Code で/surrealdb-pythonを入力して読み込まれたか確認します。

同梱ファイルreferences/embedded.md

詳細

SurrealDB Python SDK

SurrealDB の実行(サーバーモード)

RocksDB を使用してデータを永続化します:

surreal start -u root -p root rocksdb:database

メモリ内:

surreal start -u root -p root

クライアント/サーバーモード

Surreal コンテキストマネージャーを使用して、WebSocket 経由で接続します:

from surrealdb import Surreal

with Surreal("ws://localhost:8000/rpc") as db:
    db.signin({"username": "root", "password": "root"})
    db.use("namespace_test", "database_test")

    db.create(
        "person",
        {
            "user": "me",
            "password": "safe",
            "marketing": True,
            "tags": ["python", "documentation"],
        },
    )

    print(db.select("person"))

    print(db.update("person", {
        "user": "you",
        "password": "very_safe",
        "marketing": False,
        "tags": ["Awesome"],
    }))

    print(db.delete("person"))

    db.query("""
    insert into person {
        user: 'me',
        password: 'very_safe',
        tags: ['python', 'documentation']
    };
    """)

    print(db.query("select * from person"))

    print(db.query("""
    update person content {
        user: 'you',
        password: 'more_safe',
        tags: ['awesome']
    };
    """))

    print(db.query("delete person"))

組み込みモード

サーバーを必要とせず、Python プロセス内で SurrealDB を直接実行します。

  • メモリ内:Surreal("mem://") / AsyncSurreal("mem://")
  • ファイルベースの永続化:Surreal(f"file://{db_path}") / AsyncSurreal(f"file://{db_path}")

ファイルベースの永続化を使用する完全な非同期の例については、references/embedded.md を参照してください。

コメント