Migrating from Databutton

circle-check

How-to

  1. Go to https://riff.new/home and locate your Databutton app. You can distinguish between Databutton and Riff apps by looking at the label on your app. Databutton apps are also marked with the Databutton logo.

  2. Click the "Move to Riff" button to start the process. The process itself will take roughly 1-2 minutes, during which we do the following

    1. We analyze your app to detect any known issues that might need to be fixed before you can migrate. If the process fails, please consult the section further down on known issues.

    2. For some known issues that doesn't block the migration, your app will be populated with a set of follow-up tasks that must be completed in Riff to finalize the migration.

    3. Your workspace will be upgraded to the much faster Riff workspace with improved handling of secrets and support for native integrations and self-service package installation.

  3. When the process is done, you will be sent into your workspace in Riff. Under the task tab you will see a task for completing the migration to Riff. This task usually includes:

    1. Rewriting deprecated code (optional)

    2. Installing necessary packages

Discontinued features

Sending emails with db.notify.email

The built-in feature in the Databutton SDK called db.notify.email is discontinued in Databutton. This must be replaced with a tool like https://resend.com to continue sending emails from your app. If your app is using db.notify.email, your app will be populated with a task for replacing this.

Fetching secrets with db.secrets.get

The Databutton SDK feature for fetching secrets has been replaced by use of environment variables. This means that what earlier was db.secrets.get("API_KEY") is now os.environ.get("API_KEY"). If this is relevant for your app, your migrated app will include a task with instructions to the agent on how to fix this.

Known issues blocking automatic migration

App mixing database environments

Problem

In Databutton, the agent access secrets through the db.secrets.get(<secret>) , and in some cases the agent uses the same database URL in your workspace and in the deployed app. In Riff, this is scoped to the environment, meaning you cannot access the production database from the workspace and vice versa.

Resolution

If the migration process uncovers this mistake, the migration will be stopped and you need to resolve this issue before migrating your app.

Last updated

Was this helpful?