@@ -135,59 +135,70 @@ pub fn run_make_migrations(options: MakeMigrationsOptions) -> anyhow::Result<()>
135135 let mut altered_fields: HashMap < String , Vec < ( & Field , & Field ) > > = HashMap :: new ( ) ;
136136
137137 // Check if any new models exist
138- for x in & internal_models. models {
139- if !old_lookup. iter ( ) . any ( |( a, _) | x . name == * a) {
140- new_models. push ( x ) ;
138+ for new_model in & internal_models. models {
139+ if !old_lookup. iter ( ) . any ( |( a, _) | new_model . name == * a) {
140+ new_models. push ( new_model ) ;
141141 }
142142 }
143143
144144 // Check if any old model got deleted
145- for x in & constructed. models {
146- if !new_lookup. iter ( ) . any ( |( a, _) | x . name == * a) {
147- deleted_models. push ( x ) ;
145+ for old_model in & constructed. models {
146+ if !new_lookup. iter ( ) . any ( |( a, _) | old_model . name == * a) {
147+ deleted_models. push ( old_model ) ;
148148 }
149149 }
150150
151151 // Iterate over all models, that are in the constructed
152152 // as well as in the new internal models
153- for x in & internal_models. models {
154- if !old_lookup. contains_key ( x . name . as_str ( ) ) {
153+ for new_model in & internal_models. models {
154+ if !old_lookup. contains_key ( new_model . name . as_str ( ) ) {
155155 continue ;
156156 }
157157
158158 // Check if a new field has been added
159- for y in & x . fields {
160- if !old_lookup[ x . name . as_str ( ) ]
159+ for new_field in & new_model . fields {
160+ if !old_lookup[ new_model . name . as_str ( ) ]
161161 . fields
162162 . iter ( )
163- . any ( |z| z. name == y . name )
163+ . any ( |z| z. name == new_field . name )
164164 {
165- if !new_fields. contains_key ( x . name . as_str ( ) ) {
166- new_fields. insert ( x . name . clone ( ) , vec ! [ ] ) ;
165+ if !new_fields. contains_key ( new_model . name . as_str ( ) ) {
166+ new_fields. insert ( new_model . name . clone ( ) , vec ! [ ] ) ;
167167 }
168- new_fields. get_mut ( x. name . as_str ( ) ) . unwrap ( ) . push ( y) ;
168+ new_fields
169+ . get_mut ( new_model. name . as_str ( ) )
170+ . unwrap ( )
171+ . push ( new_field) ;
169172 }
170173 }
171174
172175 // Check if a existing field got deleted
173- for y in & old_lookup[ x . name . as_str ( ) ] . fields {
174- if !x . fields . iter ( ) . any ( |z| z. name == y . name ) {
175- if !deleted_fields. contains_key ( x . name . as_str ( ) ) {
176- deleted_fields. insert ( x . name . clone ( ) , vec ! [ ] ) ;
176+ for old_field in & old_lookup[ new_model . name . as_str ( ) ] . fields {
177+ if !new_model . fields . iter ( ) . any ( |z| z. name == old_field . name ) {
178+ if !deleted_fields. contains_key ( new_model . name . as_str ( ) ) {
179+ deleted_fields. insert ( new_model . name . clone ( ) , vec ! [ ] ) ;
177180 }
178- deleted_fields. get_mut ( x. name . as_str ( ) ) . unwrap ( ) . push ( y) ;
181+ deleted_fields
182+ . get_mut ( new_model. name . as_str ( ) )
183+ . unwrap ( )
184+ . push ( old_field) ;
179185 }
180186 }
181187
182188 // Check if a existing field got altered
183- for y in & old_lookup[ x . name . as_str ( ) ] . fields {
184- for z in & x . fields {
189+ for old_field in & old_lookup[ new_model . name . as_str ( ) ] . fields {
190+ for new_field in & new_model . fields {
185191 // Check for differences
186- if y. db_type != z. db_type || y. annotations != z. annotations {
187- if !altered_fields. contains_key ( x. name . as_str ( ) ) {
188- altered_fields. insert ( x. name . clone ( ) , vec ! [ ] ) ;
192+ if old_field. db_type != new_field. db_type
193+ || old_field. annotations != new_field. annotations
194+ {
195+ if !altered_fields. contains_key ( new_model. name . as_str ( ) ) {
196+ altered_fields. insert ( new_model. name . clone ( ) , vec ! [ ] ) ;
189197 }
190- altered_fields. get_mut ( & x. name ) . unwrap ( ) . push ( ( y, z) ) ;
198+ altered_fields
199+ . get_mut ( & new_model. name )
200+ . unwrap ( )
201+ . push ( ( old_field, new_field) ) ;
191202 }
192203 }
193204 }
@@ -227,28 +238,29 @@ pub fn run_make_migrations(options: MakeMigrationsOptions) -> anyhow::Result<()>
227238 let mut references: HashMap < String , Vec < Field > > = HashMap :: new ( ) ;
228239
229240 // Create migration operations for new models
230- for x in & new_models {
241+ for new_model in & new_models {
231242 let mut normal_fields = vec ! [ ] ;
232243
233- for y in & x. fields {
234- if y. annotations
244+ for new_field in & new_model. fields {
245+ if new_field
246+ . annotations
235247 . iter ( )
236248 . any ( |z| z. eq_shallow ( & Annotation :: ForeignKey ( Default :: default ( ) ) ) )
237249 {
238250 references
239- . entry ( x . name . clone ( ) )
251+ . entry ( new_model . name . clone ( ) )
240252 . or_default ( )
241- . push ( y . clone ( ) ) ;
253+ . push ( new_field . clone ( ) ) ;
242254 } else {
243- normal_fields. push ( y . clone ( ) ) ;
255+ normal_fields. push ( new_field . clone ( ) ) ;
244256 }
245257 }
246258
247259 op. push ( Operation :: CreateModel {
248- name : x . name . clone ( ) ,
260+ name : new_model . name . clone ( ) ,
249261 fields : normal_fields,
250262 } ) ;
251- info ! ( "Created model {}" , x . name) ;
263+ info ! ( "Created model {}" , new_model . name) ;
252264 }
253265
254266 // Create referencing fields for new models
@@ -262,11 +274,11 @@ pub fn run_make_migrations(options: MakeMigrationsOptions) -> anyhow::Result<()>
262274 }
263275
264276 // Create migration operations for deleted models
265- for x in & deleted_models {
277+ for deleted_model in & deleted_models {
266278 op. push ( Operation :: DeleteModel {
267- name : x . name . clone ( ) ,
279+ name : deleted_model . name . clone ( ) ,
268280 } ) ;
269- info ! ( "Deleted model {}" , x . name) ;
281+ info ! ( "Deleted model {}" , deleted_model . name) ;
270282 }
271283
272284 for ( model_name, new_fields) in & new_fields {
@@ -319,24 +331,24 @@ pub fn run_make_migrations(options: MakeMigrationsOptions) -> anyhow::Result<()>
319331 }
320332
321333 // Create migration operations for new fields in existing models
322- for ( x , y ) in & new_fields {
323- for z in y {
334+ for ( model_name , fields ) in & new_fields {
335+ for field in fields {
324336 op. push ( Operation :: CreateField {
325- model : x . clone ( ) ,
326- field : ( * z ) . clone ( ) ,
337+ model : model_name . clone ( ) ,
338+ field : ( * field ) . clone ( ) ,
327339 } ) ;
328- info ! ( "Added field {} to model {}" , z . name, x ) ;
340+ info ! ( "Added field {} to model {}" , field . name, model_name ) ;
329341 }
330342 }
331343
332344 // Create migration operations for deleted fields in existing models
333- for ( x , y ) in & deleted_fields {
334- for z in y {
345+ for ( model_name , fields ) in & deleted_fields {
346+ for field in fields {
335347 op. push ( Operation :: DeleteField {
336- model : x . clone ( ) ,
337- name : z . name . clone ( ) ,
348+ model : model_name . clone ( ) ,
349+ name : field . name . clone ( ) ,
338350 } ) ;
339- info ! ( "Deleted field {} from model {}" , z . name, x ) ;
351+ info ! ( "Deleted field {} from model {}" , field . name, model_name ) ;
340352 }
341353 }
342354
@@ -397,28 +409,29 @@ pub fn run_make_migrations(options: MakeMigrationsOptions) -> anyhow::Result<()>
397409 let mut operations = vec ! [ ] ;
398410 let mut references: HashMap < String , Vec < Field > > = HashMap :: new ( ) ;
399411
400- operations. extend ( internal_models. models . iter ( ) . map ( |x | {
412+ operations. extend ( internal_models. models . iter ( ) . map ( |model | {
401413 let mut normal_fields = vec ! [ ] ;
402414
403- for y in & x. fields {
404- if y. annotations
415+ for field in & model. fields {
416+ if field
417+ . annotations
405418 . iter ( )
406419 . any ( |z| z. eq_shallow ( & Annotation :: ForeignKey ( Default :: default ( ) ) ) )
407420 {
408421 references
409- . entry ( x . name . clone ( ) )
422+ . entry ( model . name . clone ( ) )
410423 . or_default ( )
411- . push ( y . clone ( ) ) ;
424+ . push ( field . clone ( ) ) ;
412425 } else {
413- normal_fields. push ( y . clone ( ) ) ;
426+ normal_fields. push ( field . clone ( ) ) ;
414427 }
415428 }
416429
417430 let o = Operation :: CreateModel {
418- name : x . name . clone ( ) ,
431+ name : model . name . clone ( ) ,
419432 fields : normal_fields,
420433 } ;
421- info ! ( "Created model {}" , x . name) ;
434+ info ! ( "Created model {}" , model . name) ;
422435 o
423436 } ) ) ;
424437
0 commit comments