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