> ## Documentation Index
> Fetch the complete documentation index at: https://docs.blnkfinance.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 0.11.0 Migration Guide

> Migration guide for upgrading from Blnk v0.10.x to v0.11.0, covering Typesense upgrades and breaking changes.

export const CtaCallout = props => {
  const {title, buttonLabel, href, trackingEvent, buttonTarget, rel = "noopener noreferrer", children} = props;
  const handleCtaClick = () => {
    if (typeof window === "undefined" || !trackingEvent) {
      return;
    }
    try {
      window.dispatchEvent(new CustomEvent("blnk:docs-cta", {
        detail: {
          name: trackingEvent,
          href
        }
      }));
    } catch {}
    try {
      window.posthog?.capture?.(trackingEvent, {
        href
      });
    } catch {}
    const gaPayload = {
      cta_href: href
    };
    try {
      window.gtag?.("event", trackingEvent, gaPayload);
    } catch {}
    try {
      window.dataLayer = window.dataLayer || [];
      window.dataLayer.push({
        event: trackingEvent,
        ...gaPayload
      });
    } catch {}
  };
  const isExternal = typeof href === "string" && (/^https?:\/\//i).test(href);
  const target = buttonTarget ?? (isExternal ? "_blank" : undefined);
  const linkRel = isExternal ? rel : undefined;
  return <section className="cta-callout not-prose relative my-8 w-full min-w-0 overflow-hidden rounded-xl border border-zinc-200 p-5 dark:border-white/10">
      <div className="cta-callout-noise" aria-hidden="true" />
      <div className="cta-callout-layout">
        {title ? <div className="cta-callout-title-row">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28" width="14" height="14" className="cta-callout-icon shrink-0 text-zinc-800 dark:text-zinc-200" aria-hidden="true">
              <g fill="none" fillRule="nonzero">
                <path d="M28 0v28H0V0h28ZM14.691833333333335 27.134333333333334l-0.012833333333333334 0.0023333333333333335 -0.08283333333333333 0.04083333333333334 -0.023333333333333334 0.004666666666666667 -0.016333333333333335 -0.004666666666666667 -0.08283333333333333 -0.04083333333333334c-0.011666666666666667 -0.004666666666666667 -0.022166666666666668 -0.0011666666666666668 -0.028000000000000004 0.005833333333333334l-0.004666666666666667 0.011666666666666667 -0.019833333333333335 0.49933333333333335 0.005833333333333334 0.023333333333333334 0.011666666666666667 0.015166666666666667 0.12133333333333333 0.08633333333333333 0.0175 0.004666666666666667 0.014000000000000002 -0.004666666666666667 0.12133333333333333 -0.08633333333333333 0.014000000000000002 -0.018666666666666668 0.004666666666666667 -0.019833333333333335 -0.019833333333333335 -0.4981666666666667c-0.0023333333333333335 -0.011666666666666667 -0.0105 -0.019833333333333335 -0.019833333333333335 -0.021Zm0.3091666666666667 -0.13183333333333336 -0.015166666666666667 0.0023333333333333335 -0.21583333333333335 0.1085 -0.011666666666666667 0.011666666666666667 -0.0035000000000000005 0.012833333333333334 0.021 0.5016666666666667 0.005833333333333334 0.014000000000000002 0.009333333333333334 0.008166666666666668 0.23450000000000004 0.1085c0.014000000000000002 0.004666666666666667 0.026833333333333334 0 0.03383333333333334 -0.009333333333333334l0.004666666666666667 -0.016333333333333335 -0.03966666666666667 -0.7163333333333334c-0.0035000000000000005 -0.014000000000000002 -0.011666666666666667 -0.023333333333333334 -0.023333333333333334 -0.025666666666666667Zm-0.8341666666666667 0.0023333333333333335a0.026833333333333334 0.026833333333334334 0 0 0 -0.0315 0.007000000000000001l-0.007000000000000001 0.016333333333333335 -0.03966666666666667 0.7163333333333334c0 0.014000000000000002 0.008166666666666668 0.023333333333333334 0.019833333333333335 0.028000000000000004l0.0175 -0.0023333333333333335 0.23450000000000004 -0.1085 0.011666666666666667 -0.009333333333333334 0.004666666666666667 -0.012833333333333334 0.019833333333333335 -0.5016666666666667 -0.0035000000000000005 -0.014000000000000002 -0.011666666666666667 -0.011666666666666667 -0.21466666666666667 -0.10733333333333334Z" strokeWidth="1.1667" />
                <path fill="currentColor" d="M14 2.916666666666667A1.75 1.75 0 0 1 15.750000000000002 4.666666666666667v6.302333333333334L21.207666666666668 7.816666666666667a1.75 1.75 0 0 1 1.75 3.031L17.5 14l5.457666666666667 3.151166666666667a1.75 1.75 0 0 1 -1.75 3.031l-5.457666666666667 -3.1500000000000004V23.333333333333336a1.75 1.75 0 0 1 -3.5 0v-6.302333333333334L6.792333333333334 20.183333333333337a1.75 1.75 0 1 1 -1.75 -3.031L10.5 14 5.042333333333334 10.848833333333333a1.75 1.75 0 0 1 1.75 -3.031l5.457666666666667 3.1500000000000004V4.666666666666667A1.75 1.75 0 0 1 14 2.916666666666667Z" strokeWidth="1.1667" />
              </g>
            </svg>
            <p className="cta-callout-title min-w-0 font-semibold text-zinc-800 dark:text-zinc-200">
              {title}
            </p>
          </div> : null}
        <div className={`cta-callout-body text-sm leading-normal text-zinc-800 dark:text-zinc-200${title ? " cta-callout-body--indented" : ""}`}>
          {children}
        </div>
        <a href={href} target={target} rel={linkRel} onClick={handleCtaClick} data-docs-cta={trackingEvent || undefined} className="cta-callout-button inline-flex items-center justify-center gap-1 rounded-full bg-white px-3 py-1.5 text-sm font-semibold transition hover:bg-zinc-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white/50 dark:bg-white dark:hover:bg-zinc-200">
          {buttonLabel}
          <span className="cta-callout-button-arrow" aria-hidden="true">
            →
          </span>
        </a>
      </div>
    </section>;
};

This migration guide covers the breaking changes introduced in Blnk v0.11.0, specifically related to Typesense/Search functionality. The main change involves upgrading the Typesense server from version 0.23.x to 0.24.x, which requires updating your Docker configuration.

***

## Breaking changes summary

* **From:** Typesense 0.23.x
* **To:** Typesense 0.24.x
* **Impact:** Breaking changes in API compatibility and schema handling

***

## Migration steps

<Steps titleSize="h3">
  <Step title="Update Docker configuration">
    Update your Typesense server version in your Docker configuration files.

    1. **For Production (`docker-compose.yaml`)**
       ```yaml theme={"system"}
       # Before (v0.10.x and lower)
       typesense:
         image: typesense/typesense:0.23.1

       # After (v0.11.0)
       typesense:
         image: typesense/typesense:0.24.0
       ```

    2. **For Development (`docker-compose.dev.yaml`)**
       ```yaml theme={"system"}
       # Before (v0.10.x and lower)
       typesense:
         image: typesense/typesense:0.23.1

       # After (v0.11.0)
       typesense:
         image: typesense/typesense:0.24.0
       ```

    3. **For Kubernetes (`infrastructure/k8s-manifests/typesense-deployment.yaml`)**
       ```yaml theme={"system"}
       # Before (v0.10.x and lower)
       containers:
         - image: typesense/typesense:0.23.1

       # After (v0.11.0)
       containers:
         - image: typesense/typesense:0.24.0
       ```
  </Step>

  <Step title="Allow automatic schema migration">
    The new version includes automatic schema migration capabilities. When you start Blnk v0.11.0, it will automatically:

    1. **Detect existing collections** in your Typesense instance.
    2. **Compare schemas** between your current collections and the latest schema definitions.
    3. **Add new fields** to existing collections without data loss.
    4. **Create missing collections** with the latest schema.

    **Collections affected:**

    * `ledgers`.
    * `balances`.
    * `transactions`.
    * `reconciliations`.
    * `identities`.
  </Step>

  <Step title="Schema improvements">
    1. **Ledgers collection:**
       * Enhanced metadata handling with object type support.
       * Improved nested field support.

    2. **Balances collection:**
       * All balance fields now use `string` type for precise decimal handling.
       * Enhanced metadata object support.
       * Improved nested field capabilities.

    3. **Transactions collection:**
       * `precise_amount` field uses `string` type for exact decimal precision.
       * Enhanced metadata object support.
       * Improved nested field capabilities.

    4. **Reconciliations collection:**
       * No breaking changes to existing fields.
       * Enhanced performance optimizations.

    5. **Identities collection:**
       * Enhanced metadata object support.
       * Improved nested field capabilities.
  </Step>

  <Step title="Start Blnk v0.11.0">
    Start your updated Blnk instance. The system will automatically handle data migration including:

    1. **Large number conversion:** Automatically converts `big.Int` values to strings for Typesense compatibility.
    2. **Metadata normalization:** Handles metadata field normalization for object schemas.
    3. **Time field normalization:** Ensures consistent timestamp formatting.

    <Check>
      No manual intervention is required for data migration - everything happens automatically.
    </Check>
  </Step>

  <Step title="Configuration compatibility">
    <Info>
      No changes to environment variables or configuration files are required. All existing configurations remain compatible.
    </Info>

    * Environment variables remain the same.
    * `blnk.json` configuration structure unchanged.
    * Search API endpoints unchanged.
    * Response formats remain compatible.

    **API Endpoints (No Changes Required):**

    ```bash theme={"system"}
    # Single collection search
    POST /search/{collection}
    ```
  </Step>
</Steps>

***

## Testing checklist

After migration, verify the following:

* Typesense server starts successfully.
* All collections are accessible.
* Search functionality works correctly.
* Data integrity is maintained.
* API endpoints respond correctly.
* No errors in application logs.

***

## Performance improvements

Blnk v0.11.0 includes several performance improvements:

1. **Enhanced search performance:** Optimized query execution.
2. **Improved memory usage:** Better resource management.
3. **Faster schema updates:** Streamlined collection management.
4. **Better error handling:** More robust error recovery.

<Note>This migration guide covers the breaking changes in Blnk v0.11.0. For additional features and improvements, refer to the [release notes](/changelog/blnk-core)</Note>

***

## Need help?

We are very happy to help you make the most of Blnk, regardless of whether it is your first time or you are switching from another tool.

To ask questions or discuss issues, please [contact us](mailto:support@blnkfinance.com) or [join our Discord community](https://discord.gg/7WNv94zPpx).

<CtaCallout title="Connect your ledger to Blnk Cloud" href="https://cloud.blnkfinance.com/auth/sign-up?utm_source=blnk_docs&utm_medium=documentation&utm_campaign=need-help" buttonLabel="Open Blnk Cloud" trackingEvent="clicked_cloud_signup">
  Sign up and manage your ledger with our back-office dashboard. You can invite teammates to collaborate and manage your ledger operations directly from the dashboard.
</CtaCallout>
