Bug #235

Το ξένο κλειδί από το μοντέλο Image στο μοντέλο VirtualMachine αγνοείται

Added by Vangelis Koukis about 13 years ago. Updated about 13 years ago.

Status:Closed Start date:02/28/2011
Priority:High Due date:
Assignee:Vassilios Karakoidas % Done:

0%

Category:obsolete_db Spent time: -
Target version:-

Description

Το πεδίο sourcevm, ξένο κλειδί από το μοντέλο Image στο μοντέλο VirtualMachine αγνοείται.
Δεν προκύπτει στη λίστα που παράγει το Django με manage.py sql db και δεν εφαρμόζεται ως περιορισμός όταν μπαίνουν τα fixtures.

Οπότε, μπορώ να βάλω τα fixtures για τα images χωρίς να έχω βάλει τα fixtures για τα VMs, δεν σκάει σε αυτό το σημείο,
σκάει όμως όταν θελήσω να πάρω τη λίστα των images και δεν υπάρχουν τα αντίστοιχα VMs στη βάση.

History

#1 Updated by Vassilios Karakoidas about 13 years ago

Υπάρχει θέμα με την σχέση Image <-> VirtualMachine. Είναι δύο κατευθύνσεων και για κάποιο λόγο, το django παρόλο που ορίζεται η σχέση, δεν ορίζει την μία εκ των δύο. Έχω κάνει αρκετές δοκιμές αλλά τίποτα.

#2 Updated by Vangelis Koukis about 13 years ago

  • Status changed from Assigned to Closed

Μετά από συζήτηση με το Φαίδωνα βρήκαμε ότι αυτό δεν το κάνει με MySQL backend, μόνο με το SQLite backend.

Όταν χρησιμοποιείται το MySQL backend, ο κώδικας SQL που βγαίνει πρώτα ορίζει όλους τους πίνακες, μετά θέτει με ALTER TABLE ADD CONSTRAINT τους περιορισμούς αναφορικής ακεραιότητας.

Στην περίπτωση της SQLite δεν υποστηρίζεται ALTER TABLE ADD CONSTRAINT (βλ. http://www.sqlite.org/omitted.html), οπότε το κάνει απευθείας, στον ορισμό του πίνακα με REFERENCES. Αυτό δεν είναι δυνατό όταν υπάρχει κυκλική αναφορά, γιατί δεν ξέρει ακόμη ότι υπάρχει ένας πίνακας από κάτω για το άλλο μοντέλο [υπάρχει τρόπος να γίνει, θα μπορούσε να κάνει δύο περάσματα, φαίνεται πώς το Django δεν το κάνει για κάποιο λόγο].

Οπότε, αφού δουλεύει με το MySQL backend το ξεχνάμε. Εξάλλου σύντομα θα έχουμε μια κοινή MySQL βάση γιατί ήδη υπάρχουν προβλήματα ασυνέπειας τώρα που τρέχει ο καθένας τη δική του τοπική SQLite, καθώς δημιουργούνται και καταστρέφονται VMs.

Also available in: Atom PDF