
Hi, i have some problems during updating of a document in a Two-way relationship table.
I'm on: -Appwrite Cloud -Web SDK 10.2.0
DB structure:
food : {
name : string (required),
ingredients : relations to "food_ingredients" (manyToMany)
}
food_ingredients : {Β
quantity : integer (required),
ingredients : One-way relation to "ingredients" (manyToMany),
food: relations to "food" (manyToMany)
}
It's simple,
step to replicate:
- create food doc:
food = this.db.createDocument(this.base_db, 'food', Appwrite.ID.unique(), {name : 'food_1'})
- create food_ingredients with food relation doc:
this.db.createDocument(this.base_db, 'food_ingredients', Appwrite.ID.unique(), food_ingredients = {quantity : 1, ingredients : [ingredient.?id], food : [food.$id]})
now, Now if I take the food document, I also receive the associated food_ingredients list
- but, when i try to edit food doc, i receive an exception:
this.db.updateDocument(this.base_db, 'food', food.$id, {name : 'food_1_updated'})
I've tried:
this.db.updateDocument(this.base_db, 'food', food.$id, {name : 'food_1_updated', ingredients : null})
this.db.updateDocument(this.base_db, 'food', food.$id, {name : 'food_1_updated'},
ingredients : [])
this.db.updateDocument(this.base_db, 'food', food.$id, {name : 'food_1_updated'},
ingredients : [food_ingredients.$id])
but i alway receive:
{
"name":"AppwriteException",
"code":400,
"type":"document_invalid_structure",
"response":{
"message":"Invalid document structure: Unknown attribute: 'food_ingredients'",
"code":400,
"type":"document_invalid_structure",
"version":"0.13.23"
}
}
thanks everyone in advance
P.S:
funtions.client = new Appwrite.Client().setEndpoint().setProject()
this.db = new Appwrite.Databases(functions.client),

Something may have happened to your relationships during hte upgrade. Would you please provide your:
- project id
- database ids
- collection ids
- attributes for each collection.
The easiest way to gather this would be to use the Appwrite CLI and init your collection to generate an appwrite.json
that you can share

sure, here it is

I think I created the db before the migration, but I certainly modified it these days

do you ahve much data?

ok i think i fixed the food collection. how's your food_ingredients collection. are you able to update documents in there?

no it's a test table.

Yeah now it's work.
food_ingredients table works fine

Thanks for your help π

For possible future situations, is there a way to fix this by myself?

When did the problem start?

I agreed with this yesterday, I added the field to the food_ingredients table and it automatically added it to food too. When I tried to edit a doc in food, the exception was raised

I don't know if the problem arose from the migration or from the automatic addition of the field in food
Recommended threads
- Registering new flutter app
Hi, ive got an already build flutter app which works in development with appwrite. but with the built version i get an error that the client is not registered. ...
- Relationship opt-in?
Hi! I'm trying to understand opt-in relationship population. I'm listing rows as follows: `(...).listRows({ databaseId: this.databaseId, tableId: this.tableId, ...
- I am trying to run appwrite storage list...
Hello! I am trying to use a command to return all of my files from my bucket. This is the cmd I am currently running: "appwrite storage list-files --bucket-id <...
