Search
ctrl/
Ask AI
Light
Dark
System

1.0 RC 3

This changelog summarizes changes and bugfixes in EdgeDB 1.0 Release Candidate 3 “Cygni”. This release is focusing on fixing existing issues rather than introducing new features.

The biggest change in this release is in how EdgeDB is packaged. We now have a “portable build” that runs on any non-legacy Linux or macOS system. The purpose is to avoid restrictions that supporting native packaging systems imposes. Because of this we recommend a more explicit dump/restore upgrade workflow to get your instances to RC3.

Before you start you may want to backup the instance credentials (which you can find in the “Config” directory indicated by edgedb info). The first step in the upgrade process will be backing up all the instance data and that will include the login credentials that the instance expects. After restoring the database dump, you may need to restore old credentials file as well.

If you have an EdgeDB project, you can upgrade it to RC3 using the following steps from the project directory:

Copy
$ 
edgedb dump --all --format=dir ./upgrade_backup
Copy
$ 
edgedb project unlink -D
Copy
$ 
edgedb project upgrade --to-latest
Copy
$ 
edgedb project init --no-migrations
Copy
$ 
edgedb restore --admin --all ./upgrade_backup

Now that the project has been re-initialized and data dump is restored, we need to restore the login credentials. Which presents a couple of options. If there’s no code outside the project directory that actually requires access to the database, the recommended option is to reset the password:

Copy
$ 
edgedb instance reset-password my_instance

Alternatively we can restore the old credentials:

Copy
$ 
edgedb instance reset-password my_instance --password

If you have an EdgeDB instance that’s not part of a project, you can upgrade it to RC3 using the following steps:

Copy
$ 
edgedb dump -I my_instance --all --format=dir ./my_instance_backup
Copy
$ 
edgedb instance destroy my_instance
Copy
$ 
edgedb instance create my_instance
Copy
$ 
edgedb restore -I my_instance --admin --all ./my_instance_backup

Now that the instance has been re-initialized and data dump is restored, we need to restore the login credentials. Which presents a couple of options. If there’s no code that uses the login credentials explicitly, but rather relies on the instance name only to access to the database, the recommended approach is to reset the password:

Copy
$ 
edgedb instance reset-password my_instance

Alternatively we can restore the old credentials:

Copy
$ 
edgedb instance reset-password my_instance --password
  • Support path prefix in link constraints (#3206).

    It is now possible to use shorthand path expression referring to link properties in constraint expressions:

    Copy
    type Foo {
        link bar -> Object {
            property linkprop -> str;
            constraint expression on (@linkprop != "lol");
        }
    }
  • Support path prefix in link indexes (#3202).

    It is now possible to use shorthand path expression referring to link properties in index expressions:

    Copy
    abstract link friendship {
        property strength -> float64;
        index on (@strength);
    }
  • Implement index and slicing of JSON strings (#3203).

    We already implement ++ for JSON strings, but indexing operations were left out until now. This change fixes this oversight:

    Copy
    db> 
    select to_json('"hello"')[0];
    {"\"h\""}
    Copy
    db> 
    select to_json('"hello"')[1:3];
    {"\"el\""}
  • Fix some corner cases of functions without optional or set of arguments being called on empty input (#3195).

  • Fix some corner cases of changing link type (#3183).

We are in the process of dropping old deprecated APIs before rolling out production-ready EdgeDB.

  • Clean up the API for edgedb-python and release v0.19.0 driver.

  • Clean up the API for edgedb-js and release v0.17.0 driver.

  • Clean up the API for edgedb-go and release v0.9.0 driver.