4
4
5
5
class DatabaseFeatures (BaseDatabaseFeatures ):
6
6
allow_sliced_subqueries_with_in = False
7
+ can_create_inline_fk = False
7
8
can_introspect_foreign_keys = False
8
9
greatest_least_ignores_nulls = True
9
10
has_json_object_function = False
10
11
has_native_json_field = True
12
+ supports_collation_on_charfield = False
13
+ supports_column_check_constraints = False
11
14
supports_date_lookup_using_string = False
12
15
supports_explaining_query_execution = True
16
+ supports_expression_indexes = False
13
17
supports_foreign_keys = False
14
18
supports_ignore_conflicts = False
15
19
supports_json_field_contains = False
@@ -19,6 +23,7 @@ class DatabaseFeatures(BaseDatabaseFeatures):
19
23
supports_select_intersection = False
20
24
# Not implemented: https://github.com/mongodb-labs/django-mongodb/issues/72
21
25
supports_select_union = False
26
+ supports_table_check_constraints = False
22
27
supports_temporal_subtraction = True
23
28
# MongoDB stores datetimes in UTC.
24
29
supports_timezones = False
@@ -73,6 +78,83 @@ class DatabaseFeatures(BaseDatabaseFeatures):
73
78
"many_to_one.tests.ManyToOneTests.test_selects" ,
74
79
# Incorrect JOIN with GenericRelation gives incorrect results.
75
80
"aggregation_regress.tests.AggregationTests.test_aggregation_with_generic_reverse_relation" ,
81
+ # AddField
82
+ "schema.tests.SchemaTests.test_add_datefield_and_datetimefield_use_effective_default" ,
83
+ "schema.tests.SchemaTests.test_add_field" ,
84
+ "schema.tests.SchemaTests.test_add_field_binary" ,
85
+ "schema.tests.SchemaTests.test_add_field_both_defaults_preserves_db_default" ,
86
+ "schema.tests.SchemaTests.test_add_field_default_dropped" ,
87
+ "schema.tests.SchemaTests.test_add_field_default_nullable" ,
88
+ "schema.tests.SchemaTests.test_add_field_default_transform" ,
89
+ "schema.tests.SchemaTests.test_add_field_durationfield_with_default" ,
90
+ "schema.tests.SchemaTests.test_add_field_o2o_nullable" ,
91
+ "schema.tests.SchemaTests.test_add_field_temp_default" ,
92
+ "schema.tests.SchemaTests.test_add_field_temp_default_boolean" ,
93
+ "schema.tests.SchemaTests.test_add_field_use_effective_default" ,
94
+ "schema.tests.SchemaTests.test_add_text_field_with_db_default" ,
95
+ "schema.tests.SchemaTests.test_add_textfield_default_nullable" ,
96
+ # RemoveField
97
+ "schema.tests.SchemaTests.test_remove_field" ,
98
+ "schema.tests.SchemaTests.test_remove_indexed_field" ,
99
+ # Add/RemoveIndex
100
+ "schema.tests.SchemaTests.test_add_remove_index" ,
101
+ "schema.tests.SchemaTests.test_composed_desc_index_with_fk" ,
102
+ "schema.tests.SchemaTests.test_composed_index_with_fk" ,
103
+ "schema.tests.SchemaTests.test_create_index_together" ,
104
+ "schema.tests.SchemaTests.test_order_index" ,
105
+ "schema.tests.SchemaTests.test_text_field_with_db_index" ,
106
+ # AlterField
107
+ "schema.tests.SchemaTests.test_alter" ,
108
+ "schema.tests.SchemaTests.test_alter_auto_field_to_integer_field" ,
109
+ "schema.tests.SchemaTests.test_alter_field_add_index_to_integerfield" ,
110
+ "schema.tests.SchemaTests.test_alter_field_default_dropped" ,
111
+ "schema.tests.SchemaTests.test_alter_field_fk_keeps_index" ,
112
+ "schema.tests.SchemaTests.test_alter_field_fk_to_o2o" ,
113
+ "schema.tests.SchemaTests.test_alter_field_o2o_keeps_unique" ,
114
+ "schema.tests.SchemaTests.test_alter_field_o2o_to_fk" ,
115
+ "schema.tests.SchemaTests.test_alter_int_pk_to_int_unique" ,
116
+ "schema.tests.SchemaTests.test_alter_not_unique_field_to_primary_key" ,
117
+ "schema.tests.SchemaTests.test_alter_null_to_not_null" ,
118
+ "schema.tests.SchemaTests.test_alter_null_to_not_null_keeping_default" ,
119
+ "schema.tests.SchemaTests.test_alter_primary_key_the_same_name" ,
120
+ "schema.tests.SchemaTests.test_autofield_to_o2o" ,
121
+ # AlterField (rename)
122
+ "schema.tests.SchemaTests.test_rename" ,
123
+ "schema.tests.SchemaTests.test_rename_keep_db_default" ,
124
+ "schema.tests.SchemaTests.test_rename_keep_null_status" ,
125
+ # AlterField (db_index)
126
+ "schema.tests.SchemaTests.test_indexes" ,
127
+ "schema.tests.SchemaTests.test_remove_constraints_capital_letters" ,
128
+ "schema.tests.SchemaTests.test_remove_db_index_doesnt_remove_custom_indexes" ,
129
+ # AlterField (unique)
130
+ "schema.tests.SchemaTests.test_remove_field_unique_does_not_remove_meta_constraints" ,
131
+ "schema.tests.SchemaTests.test_unique" ,
132
+ "schema.tests.SchemaTests.test_unique_and_reverse_m2m" ,
133
+ # alter_index_together
134
+ "schema.tests.SchemaTests.test_index_together" ,
135
+ "schema.tests.SchemaTests.test_remove_index_together_does_not_remove_meta_indexes" ,
136
+ # alter_unique_together
137
+ "schema.tests.SchemaTests.test_remove_unique_together_does_not_remove_meta_constraints" ,
138
+ "schema.tests.SchemaTests.test_unique_together" ,
139
+ # ManyToManyField
140
+ "schema.tests.SchemaTests.test_m2m" ,
141
+ "schema.tests.SchemaTests.test_m2m_create" ,
142
+ "schema.tests.SchemaTests.test_m2m_create_custom" ,
143
+ "schema.tests.SchemaTests.test_m2m_create_inherited" ,
144
+ "schema.tests.SchemaTests.test_m2m_custom" ,
145
+ "schema.tests.SchemaTests.test_m2m_inherited" ,
146
+ "schema.tests.SchemaTests.test_m2m_rename_field_in_target_model" ,
147
+ "schema.tests.SchemaTests.test_m2m_repoint" ,
148
+ "schema.tests.SchemaTests.test_m2m_repoint_custom" ,
149
+ "schema.tests.SchemaTests.test_m2m_repoint_inherited" ,
150
+ "schema.tests.SchemaTests.test_m2m_through_alter" ,
151
+ "schema.tests.SchemaTests.test_m2m_through_alter_custom" ,
152
+ "schema.tests.SchemaTests.test_m2m_through_alter_inherited" ,
153
+ "schema.tests.SchemaTests.test_m2m_through_remove" ,
154
+ # add/remove_constraint
155
+ "schema.tests.SchemaTests.test_composed_constraint_with_fk" ,
156
+ "schema.tests.SchemaTests.test_remove_ignored_unique_constraint_not_create_fk_index" ,
157
+ "schema.tests.SchemaTests.test_unique_constraint" ,
76
158
}
77
159
# $bitAnd, #bitOr, and $bitXor are new in MongoDB 6.3.
78
160
_django_test_expected_failures_bitwise = {
@@ -93,6 +175,9 @@ def django_test_expected_failures(self):
93
175
return expected_failures
94
176
95
177
django_test_skips = {
178
+ "Database defaults aren't supported by MongoDB." : {
179
+ "schema.tests.SchemaTests.test_db_default_output_field_resolving" ,
180
+ },
96
181
"Insert expressions aren't supported." : {
97
182
"bulk_create.tests.BulkCreateTests.test_bulk_insert_now" ,
98
183
"bulk_create.tests.BulkCreateTests.test_bulk_insert_expressions" ,
@@ -419,6 +504,8 @@ def django_test_expected_failures(self):
419
504
"lookup.tests.LookupTests.test_textfield_exact_null" ,
420
505
"queries.tests.ExistsSql.test_exists" ,
421
506
"queries.tests.Queries6Tests.test_col_alias_quoted" ,
507
+ "schema.tests.SchemaTests.test_rename_column_renames_deferred_sql_references" ,
508
+ "schema.tests.SchemaTests.test_rename_table_renames_deferred_sql_references" ,
422
509
},
423
510
"Test executes raw SQL." : {
424
511
"aggregation.tests.AggregateTestCase.test_coalesced_empty_result_set" ,
@@ -431,6 +518,7 @@ def django_test_expected_failures(self):
431
518
"model_fields.test_jsonfield.TestQuerying.test_key_transform_raw_expression" ,
432
519
"model_fields.test_jsonfield.TestQuerying.test_nested_key_transform_raw_expression" ,
433
520
"queries.tests.Queries1Tests.test_order_by_rawsql" ,
521
+ "schema.test_logging.SchemaLoggerTests.test_extra_args" ,
434
522
"timezones.tests.LegacyDatabaseTests.test_cursor_execute_accepts_naive_datetime" ,
435
523
"timezones.tests.LegacyDatabaseTests.test_cursor_execute_returns_naive_datetime" ,
436
524
"timezones.tests.LegacyDatabaseTests.test_raw_sql" ,
@@ -514,6 +602,9 @@ def django_test_expected_failures(self):
514
602
"introspection.tests.IntrospectionTests.test_get_constraints_unique_indexes_orders" ,
515
603
"introspection.tests.IntrospectionTests.test_get_primary_key_column" ,
516
604
},
605
+ "MongoDB can't introspect primary key." : {
606
+ "schema.tests.SchemaTests.test_primary_key" ,
607
+ },
517
608
"Known issue querying JSONField." : {
518
609
# An ExpressionWrapper annotation with KeyTransform followed by
519
610
# .filter(expr__isnull=False) doesn't use KeyTransformIsNull as it
0 commit comments