Paveł Tyślacki
4bb859e246
Refs #30172 -- Prevented removing a field's check or unique constraint from removing Meta constraints.
2019-03-17 20:50:22 -04:00
Paveł Tyślacki
782d85b6df
Fixed #30183 -- Added introspection of inline SQLite constraints.
2019-03-13 10:24:28 -04:00
Dan Tao
738faf9da2
Fixed #30108 -- Allowed adding foreign key constraints in the same statement that adds a field.
2019-01-29 15:42:57 -05:00
Paveł Tyślacki
0123b67f6b
Fixed #30060 -- Moved SQL generation for indexes and constraints to SchemaEditor.
2019-01-01 09:39:58 -05:00
Tim Graham
0b54ab0675
Refs #30033 -- Fixed schema's test_m2m_rename_field_in_target_model test failure on SQLite < 3.20.
...
Mixing local test models with non-local models resulted in a referential
integrity error during tear down since the models are removed in separate
schema editor instances which each check constraints.
Failure appeared after 7289874adc
.
2018-12-26 11:26:51 -05:00
Mariusz Felisiak
d5f4ce9849
Fixed #29949 -- Refactored db introspection identifier converters.
...
Removed DatabaseIntrospection.table_name_converter()/column_name_converter()
and use instead DatabaseIntrospection.identifier_converter().
Removed DatabaseFeatures.uppercases_column_names.
Thanks Tim Graham for the initial patch and review and Simon Charette
for the review.
2018-11-21 09:06:50 +01:00
Simon Charette
dba4a634ba
Refs #29641 -- Refactored database schema constraint creation.
...
Added a test for constraint names in the database.
Updated SQLite introspection to use sqlparse to allow reading the
constraint name for table check and unique constraints.
Co-authored-by: Ian Foote <python@ian.feete.org>
2018-11-13 15:25:44 -05:00
Mads Jensen
a906c98982
Fixed #29547 -- Added support for partial indexes.
...
Thanks to Ian Foote, Mariusz Felisiak, Simon Charettes, and
Markus Holtermann for comments and feedback.
2018-10-29 19:34:54 -04:00
Oleg
d1d5c97bc2
Fixed #29778 -- Fixed quoting of unique index names.
...
Regression in 3b429c9673
.
2018-09-25 16:00:20 -04:00
Mariusz Felisiak
6dd4edb1b4
Fixed #29496 -- Fixed crash on Oracle when converting a non-unique field to primary key.
...
Thanks Tim Graham for the review.
2018-06-17 08:51:02 +02:00
Claude Paroz
607970f31c
Replaced django.test.utils.patch_logger() with assertLogs().
...
Thanks Tim Graham for the review.
2018-05-07 09:34:00 -04:00
Tim Graham
78f8b80f9b
Fixed schema test failure when running tests in reverse.
...
Follow up to 003334f8af
.
2018-04-12 13:59:02 -04:00
Jeremy Bowman
ee17bb8a67
Fixed #29193 -- Prevented unnecessary foreign key drops when altering a unique field.
...
Stopped dropping and recreating foreign key constraints on other fields
in the same table as the one which is actually being altered in an
AlterField operation.
Regression in c3e0adcad8
.
2018-04-11 23:17:11 -04:00
Jeremy Bowman
003334f8af
Tested altering a unique field when a reverse M2M relation exists.
2018-04-11 23:17:11 -04:00
Tim Graham
6421bd702f
Refs #29227 -- Made inspectdb generate BooleanField(null=True) rather than NullBooleanField.
2018-03-20 12:10:10 -04:00
Claude Paroz
3c4ff21763
Fixed #29103 -- Removed bad 'b'-prefix added by MySQL's SchemaEditor.quote_value().
2018-03-17 16:36:54 -04:00
Tim Graham
fb8fd535c0
Moved SchemaLoggingTest to tests/schema.
2018-03-14 10:24:34 -04:00
Tim Martin
02365d3f38
Fixed #28542 -- Fixed deletion of primary key constraint if the new field is unique.
2018-01-13 20:11:55 -05:00
Tim Graham
5f456408a0
Refs #28930 -- Simplified schemas test with any().
2018-01-02 10:11:48 -05:00
Simon Charette
9f7772e098
Fixed #28884 -- Fixed crash on SQLite when renaming a field in a model referenced by a ManyToManyField.
...
Introspected database constraints instead of relying on _meta.related_objects
to determine whether or not a table or a column is referenced on rename
operations.
This has the side effect of ignoring both db_constraint=False and virtual
fields such as GenericRelation which aren't backend by database level
constraints and thus shouldn't prevent the rename operations from being
performed in a transaction.
Regression in 095c1aaa89
.
Thanks Tim for the additional tests and edits, and Mariusz for the review.
2017-12-22 15:19:05 -05:00
Tim Graham
a862af3839
Fixed #28893 -- Removed unnecessary dict.items() calls.
2017-12-06 17:17:59 -05:00
Mariusz Felisiak
fc48047586
Refs #28876 -- Fixed incorrect foreign key constraint name for models with quoted db_table.
...
Thanks Simon Charette and Tim Graham for the review and Carlos E. C.
Leite for the report.
2017-12-05 21:11:20 +01:00
Simon Charette
095c1aaa89
Fixed #28849 -- Fixed referenced table and column rename on SQLite.
...
Thanks Ramiro for the input and Tim for the review.
2017-12-01 22:12:24 -05:00
Simon Charette
ee85ef8315
Fixed #28792 -- Fixed index name truncation of namespaced tables.
...
Refs #27458 , #27843 .
Thanks Tim and Mariusz for the review.
2017-11-14 21:36:25 -05:00
Tim Graham
8a1768432b
Fixed #28552 -- Dropped support for MySQL 5.5.
2017-09-25 14:48:11 -04:00
Sergey Fedoseev
5b1c389603
Refs #23919 -- Replaced usage of django.utils.functional.curry() with functools.partial()/partialmethod().
2017-09-06 13:11:18 -04:00
Claude Paroz
169c3b3e07
Fixed #14204 -- Enforced SQLite foreign key constraints.
...
Thanks Tim Graham for contributing to the patch and
Simon Charette for advice and review.
2017-07-11 09:07:31 -04:00
Josh Schneier
fba0eaa5d6
Fixed #28298 -- Prevented a primary key alteration from adding a foreign key constraint if db_constraint=False.
2017-06-22 21:31:56 -04:00
Simon Charette
b1cbbe9267
Refs #25530 -- Deleted deferred SQL references on delete operation.
2017-06-21 00:26:30 -04:00
Simon Charette
b50815ee41
Refs #25530 -- Renamed deferred SQL references on rename operation.
2017-06-21 00:26:30 -04:00
Simon Charette
ea91ad4c13
Refs #25530 -- Changed _create_index_name to take a table as first parameter.
2017-06-20 22:59:22 -04:00
Jon Dufresne
2c69824e5a
Refs #23968 -- Removed unnecessary lists, generators, and tuple calls.
2017-06-01 19:08:59 -04:00
Mariusz Felisiak
924a89e135
Fixed #26682 -- Added support for Oracle identity columns.
...
Thanks Shai Berger and Tim Graham for reviews.
2017-06-01 19:33:48 +02:00
Mariusz Felisiak
663d1c3160
Simplified schema.tests with assertForeignKeyExists()/assertForeignKeyNotExists().
...
Thanks Tim Graham for the review.
2017-05-24 16:43:56 +02:00
Mariusz Felisiak
91b2bc3e70
Fixed #27860 -- Dropped varchar_pattern_ops/text_pattern_ops index before altering char/text field in PostgreSQL.
...
Thanks Tim Graham for the review.
2017-05-24 07:25:59 +02:00
Mariusz Felisiak
538bf43458
Fixed #27859 -- Ignored db_index for TextField/BinaryField on Oracle and MySQL.
...
Thanks Zubair Alam for the initial patch and Tim Graham for the review.
2017-05-23 17:02:40 +02:00
Tim Graham
d0e43f225f
Refs #28052 -- Cleaned up some indexes in schema tests.
2017-05-01 22:19:05 -04:00
Markus Holtermann
663e48947f
Fixed #28052 -- Prevented dropping Meta.indexes when changing db_index to False.
...
Thanks Marc Tamlyn for the report and Ian Foote/Tim Graham for review.
2017-05-01 11:31:48 -04:00
Simon Charette
35c0025151
Fixed #27928 -- Avoided SET/DROP DEFAULT unless a field changes from null to non-null.
...
Thanks Christophe Pettus, Matteo Pietro Russo for reports and Tim for review.
2017-04-02 16:34:03 -04:00
Vytis Banaitis
8838d4dd49
Refs #23919 -- Replaced kwargs.pop() with keyword-only arguments.
2017-02-01 11:41:56 -05:00
Tim Graham
0de0699d94
Fixed #27788 -- Dropped support for Oracle < 12.1.
2017-01-28 08:19:47 -05:00
chillaranand
d6eaf7c018
Refs #23919 -- Replaced super(ClassName, self) with super().
2017-01-25 12:23:46 -05:00
Tim Graham
7aba69145d
Refs #23919 -- Removed django.test.mock Python 2 compatibility shim.
2017-01-20 08:17:20 -05:00
Claude Paroz
f3c43ad1fd
Refs #23919 -- Removed python_2_unicode_compatible decorator usage
2017-01-18 13:44:34 +01:00
Andrew Nester
69b7d4b116
Fixed #27458 -- Fixed invalid sequence/index names when using "USER"."TABLE" db_table on Oracle.
2016-12-30 17:11:12 -05:00
Simon Charette
813805833a
Fixed #27631 -- Prevented execution of transactional DDL statements when unsupported.
...
Executing a DDL statement during a transaction on backends that don't support
it silently commits, leaving atomic() in an incoherent state.
While schema_editor.execute() could technically be used to execute DML
statements such usage should be uncommon as these are usually performed through
the ORM. In other cases schema_editor.connection.execute() can be used to
circumvent this check.
Thanks Adam and Tim for the review.
2016-12-28 19:43:32 -05:00
Simon Charette
cd7efa2033
Fixed #25492 -- Checked deferred foreign key constraints before dropping them.
...
This allows running foreign key data and schema altering operations in the
same migration on PostgreSQL.
Thanks Tim for review.
2016-12-24 13:53:11 -05:00
Simon Charette
96181080ba
Refs #26384 -- Isolated a test model in schema tests.
2016-12-23 21:43:49 -05:00
za
321e94fa41
Refs #27392 -- Removed "Tests that", "Ensures that", etc. from test docstrings.
2016-11-10 21:30:21 -05:00
Tim Graham
414ad25b09
Fixed #27327 -- Simplified time zone handling by requiring pytz.
2016-10-27 08:53:20 -04:00
Claude Paroz
d389125606
Fixed #27098 -- Deprecated DatabaseIntrospection.get_indexes
...
Thanks Akshesh <aksheshdoshi@gmail.com> for help with the PostgreSQL query.
Thanks Tim Graham for the review.
2016-09-12 09:26:33 +02:00
Simon Charette
aca939b6e5
Fixed #27195 -- Stopped dropping default when adding a nullable column.
...
Thanks Rob Golding from Zapier for the report.
2016-09-09 00:48:50 -04:00
Akshesh
6e07ec3f65
Fixed #27030 -- Added contrib.postgres.indexes.GinIndex.
2016-08-12 18:37:03 -04:00
Akshesh
311a8e8d50
Fixed #20888 -- Added support for column order in class-based indexes.
2016-08-12 15:52:16 -04:00
Akshesh
324c1b432a
Fixed #24442 -- Improved SchemaEditor's index name truncation.
2016-08-11 14:36:31 -04:00
Jon Dufresne
2e4cfcd2b9
Fixed #26889 -- Fixed missing PostgreSQL index in SchemaEditor.add_field().
2016-07-13 14:33:54 -07:00
Jon Dufresne
e9e705eedc
Added strict=True to all SchemaEditor.alter_field() calls in tests.
...
It should help catch bugs.
2016-07-08 12:03:33 -04:00
Jon Dufresne
9356f63a99
Fixed #25317 , #26090 -- Fixed swapping combinations of unique and db_index during migrations.
2016-07-07 20:29:08 -04:00
Akshesh
52442898e7
Refs #26709 -- Added 'model' argument to SchemaEditor.add/remove_index()
...
This removes the dependency of the Index class on its model attribute
when a name is passed to it.
Thanks to Markush for discussions.
2016-07-07 10:06:55 -04:00
Jon Dufresne
3410820460
Fixed #26833 -- Fixed SchemaEditor._constraint_names() to handle features.uppercases_column_names.
2016-07-07 08:09:42 -04:00
Jon Dufresne
16614dcd5c
Fixed #25694 -- Removed incorrect _uniq suffix on index names during migrations.
2016-06-29 14:47:29 -04:00
Jon Dufresne
d47f6d75ef
Refs #26034 -- Corrected a schema test to work with the correct field state.
2016-06-27 12:13:15 -04:00
Akshesh
156e2d59cf
Fixed #26709 -- Added class-based indexes.
...
Added the AddIndex and RemoveIndex operations to use them in migrations.
Thanks markush, mjtamlyn, timgraham, and charettes for review and advice.
2016-06-27 10:41:01 -04:00
Simon Charette
c2e62fd1ae
Fixed #26781 -- Made table name case change a noop on SQLite.
...
SQLite disgresses from the SQL standard by ignoring case of quoted identifiers.
Thanks to laozzzi for the report and Tim for the review.
2016-06-21 16:37:06 -04:00
Jon Dufresne
4f336f6652
Fixed #26747 -- Used more specific assertions in the Django test suite.
2016-06-16 14:19:18 -04:00
Iacopo Spalletti
49c57f8565
Fixed #25005 -- Made date and time fields with auto_now/auto_now_add use effective default.
...
Thanks to Andriy Sokolovskiy for initial patch.
2016-05-09 07:48:40 -04:00
Markus Holtermann
deeffde84a
Fixed #26593 -- Leveraged deferrable_sql() in SchemaEditor
2016-05-07 01:21:00 +02:00
Ville Skyttä
575a9a791e
Normalized "an SQL" spelling.
2016-05-03 19:30:48 -04:00
Michal Petrucha
d81d02d449
Refs #26384 , #24995 -- Avoided a module-level MySQL query in the schema tests.
2016-04-02 08:17:35 -04:00
Tim Graham
f3595b2549
Refs #26384 , #24995 -- Skipped a schema test on older MySQL versions.
2016-03-31 12:00:25 -04:00
Alex Hill
4b2cf1cd27
Fixed #26384 -- Fixed renaming the PK on a model with a self-referential FK on SQLite.
2016-03-29 13:25:09 -04:00
Hasan
3d0dcd7f5a
Refs #26022 -- Used context manager version of assertRaises in tests.
2016-01-29 12:32:18 -05:00
Tim Graham
b49cc86643
Fixed #26116 -- Corrected schema's test_alter_implicit_id_to_explicit.
...
AUTOINCREMENT is dropped converting an AutoField to IntegerField
which isn't the point of this test. MySQL would warn or error about
this.
2016-01-22 12:46:27 -05:00
Tim Graham
56aaae58a7
Fixed #26034 -- Fixed incorrect index handling on PostgreSQL on Char/TextField with unique=True and db_index=True.
...
Thanks Simon Charette for review.
2016-01-08 12:47:05 -05:00
Tim Graham
54d3ba8406
Added a helper function in schema tests.
2016-01-08 12:39:06 -05:00
Federico Frenguelli
3a36c80795
Fixed #25412 -- Fixed missing PostgreSQL index on Char/TextField when using AlterField.
...
Thanks to Emanuele Palazzetti for the help.
2015-12-10 16:12:51 -05:00
Simon Charette
64240263f2
Refs #25745 -- Avoided multiple registration of the same model in schema tests.
2015-11-14 11:33:28 -05:00
Tim Graham
4dcc2a1955
Used SchemaEditor.delete_model() for teardown in schema tests.
...
Some third-party database backends (MSSQL) have custom
delete_model() requirements that must be executed.
Thanks Michael Manfre for the initial patch and review.
2015-10-16 08:40:57 -07:00
Simon Charette
8e8c0792c0
Refs #18081 -- Asserted db constraints are created for fk to proxy models.
2015-09-23 14:59:05 -04:00
Aymeric Augustin
8bcff10b5a
Fix import sorting problem.
2015-09-21 22:55:18 +02:00
Aymeric Augustin
e542e81b39
Renamed descriptor classes for related objects.
...
The old names were downright confusing. Some seemed to mean the opposite
of what the class actually did.
The new names follow a consistent nomenclature:
(Forward|Reverse)(ManyToOne|OneToOne|ManyToMany)Descriptor.
I mentioned combinations that do not exist in the docstring in order to
help people who would search for them in the code base.
2015-09-21 22:20:42 +02:00
Ville Skyttä
4d933ad418
Fixed #25393 -- Fixed MySQL crash when adding text/blob field with unhashable default.
2015-09-14 12:25:08 -04:00
Dražen Odobašić
b1e33ceced
Fixed #23395 -- Limited line lengths to 119 characters.
2015-09-12 11:40:50 -04:00
Simon Charette
12f91f6ebd
Used skipUnlessDBFeature where appropriate.
2015-08-08 11:27:06 -04:00
Flavio Curella
c2e70f0265
Fixed #21127 -- Started deprecation toward requiring on_delete for ForeignKey/OneToOneField
2015-07-27 18:28:13 -04:00
Tim Graham
c52822e750
Fixed #25128 -- Fixed SQLite SchemaEditor crash when adding a ForeignObject field.
2015-07-15 15:22:52 -04:00
Simon Charette
bdb382b2a4
Refs #25002 -- Supported textual to temporal column alteration on Oracle.
...
Thanks to Tim Graham for the report and Shai Berger for the review.
2015-06-24 19:37:55 -04:00
Simon Charette
73040e584a
Fixed #25002 -- Used PostgreSQL column type alteration USING clause.
...
Thanks to Dirk Uys for the report.
2015-06-22 09:35:35 -04:00
Adam Brenecki
65296b3be3
Fixed #24972 -- Fixed removing unique_together indexes on MySQL.
2015-06-15 17:28:13 -04:00
Tim Graham
7c637a3aae
Applied db_table conversion to fix schema tests on Oracle.
2015-06-02 19:17:17 -04:00
Tim Graham
e1e6399c2c
Fixed #24893 -- Fixed lack of unique constraint when changing a field from primary_key=True to unique=True
2015-06-02 09:25:47 -04:00
Tim Graham
5ab8680983
Fixed #24892 -- Fixed quoting of SQL when renaming a field to AutoField in PostgreSQL
2015-06-02 09:13:55 -04:00
Adam Chainz
e60cce4e40
Fixed #24846 -- Added support to MySQL SchemaEditor for all blob/text data types
2015-05-30 20:37:57 -04:00
Andriy Sokolovskiy
80ad5472ce
Fixed #24817 -- Prevented loss of null info in MySQL field renaming.
2015-05-28 10:07:52 -04:00
Tim Graham
f5da438072
Fixed #24812 -- Fixed app registry RuntimeWarnings in schema and migrations tests.
2015-05-18 09:48:25 -04:00
Claude Paroz
ae635cc365
Fixed #24757 -- Recreated MySQL index when needed during combined index removal
...
Thanks Thomas Recouvreux for the report and Tim Graham for the tests and
review.
2015-05-15 17:07:14 +02:00
Claude Paroz
f54c0ec06e
Fixed #24658 -- Added missing Meta attribute in schema tests
...
Without that, the Note model would be initially created and then
the tests using that model failed when run in isolation.
2015-04-19 00:05:58 +02:00
Shai Berger
d5a0accaa0
Fixed #24595 Oracle test failure
...
The only problem for Oracle was the test, which tested nullity on
text/char fields -- but Oracle interprets_empty_strings_as_null.
2015-04-18 18:52:30 +03:00
Claude Paroz
02260ea3f6
Fixed #24595 -- Prevented loss of null info in MySQL field alteration
...
Thanks Simon Percivall for the report, and Simon Charette and Tim
Graham for the reviews.
2015-04-17 10:25:15 +02:00
Anssi Kääriäinen
8f30556329
Renamed Field.rel attribute to remote_field
...
Field.rel is now deprecated. Rel objects have now also remote_field
attribute. This means that self == self.remote_field.remote_field.
In addition, made the Rel objects a bit more like Field objects. Still,
marked ManyToManyFields as null=True.
2015-03-25 08:16:12 -04:00