datomic 2025-06-26

Hi everyone, I'm using Datomic Pro with PostgreSQL and trying to enable :db/fulltext true on existing attributes (e.g., :user/name). I've tried two main approaches, but neither worked as expected: 1. Direct Schema Update on Existing DB: Transacted the db/fulltext schema addition directly. I got this error: ":db.error/invalid-alter-attribute Error: {:db/error :db.error/unsupported-alter-schema, :entity :user/username, :attribute :db/fulltext, :from :disabled, :to true}" 1. Backup/Restore to New DB + Schema Update:bin/datomic backup-db (old PG-backed DB) ◦ bin/datomic create-database (initialize new PG DB for Datomic) ◦ bin/datomic restore-db (backup to new DB) ◦ Transacted db/fulltext schema addition on the restored DB. ◦ I got this error: java.lang.IllegalArgumentException: :restore/collision The name 'test' is already in use by a different database Any advice on troubleshooting this specific scenario would be greatly appreciated. Thanks!

You cannot change fultextness of an attribute after it is created. Only https://docs.datomic.com/schema/schema-change.html are supported.

Your backup/restore issue looks completely unrelated, like you tried to restore-db to a name that already exists in the target storage? Are you sure you got as far as transacting?

Note the error: java.lang.IllegalArgumentException: :restore/collision The name 'test' is already in use by a different database

which I would expect from the restore-db command

also note there's no such command as bin/datomic create-database