Jacob Walls
03cadb912c
Removed a Python error message dependency in test_questioner_no_default_bad_user_entry_code().
2021-12-20 11:11:39 +01:00
Jacob Walls
1833a9eee9
Increased test coverage of django.db.migrations.questioner.
2021-12-20 11:11:39 +01:00
Simon Charette
4328970780
Fixed #33366 -- Fixed case handling with swappable setting detection in migrations autodetector.
...
The migration framework uniquely identifies models by case insensitive
labels composed of their app label and model names and so does the app
registry in most of its methods (e.g. AppConfig.get_model) but it
wasn't the case for get_swappable_settings_name() until this change.
This likely slipped under the radar for so long and only regressed in
b9df2b74b9
because prior to the changes
related to the usage of model states instead of rendered models in the
auto-detector the exact value settings value was never going through a
case folding hoop.
Thanks Andrew Chen Wang for the report and Keryn Knight for the
investigation.
2021-12-17 07:46:58 +01:00
Baptiste Mispelon
a0ed3cfad1
Fixed #33305 -- Fixed autodetector crash for ForeignKey with hardcoded "to" attribute.
...
Co-authored-by: Simon Charette <charette.s@gmail.com>
2021-11-22 06:46:25 +01:00
Mariusz Felisiak
dab48b7482
Fixed #33234 -- Fixed autodetector crash for proxy models inheriting from non-model class.
...
Regression in aa4acc164d
.
Thanks Kevin Marsh for the report.
2021-11-02 15:34:08 +01:00
andrewdotn
9e6d631697
Fixed #33246 -- Made squashmigrations raise CommandError when squashed_name already exists.
2021-11-02 07:13:42 +01:00
Iuri de Silvio
afeafd6036
Fixed #33201 -- Made RenameModel operation a noop for models with db_table.
2021-10-27 12:41:29 +02:00
Mariusz Felisiak
d446f8ba08
Corrected AutodetectorTests.test_rename_field_and_foo_together()'s docstring.
2021-10-26 08:46:50 +02:00
David Wobrock
0314593fe8
Fixed #31503 -- Made autodetector remove unique/index_together before altering fields.
2021-10-25 10:10:02 +02:00
Simon Charette
5896aa8367
Fixed #33197 -- Made field rename with prior matching db_column change a noop.
...
Thanks Jacob Walls for the report.
2021-10-19 06:46:35 +02:00
Hannes Ljungberg
86971c4090
Fixed #33194 -- Fixed migrations when altering a field with functional indexes/unique constraints on SQLite.
...
This adjusts Expressions.rename_table_references() to only update alias
when needed.
Regression in 83fcfc9ec8
.
Co-authored-by: Simon Charette <charettes@users.noreply.github.com>
2021-10-18 08:25:23 +02:00
Jacob Walls
15683cdb95
Fixed #23953 -- Made makemigrations continue number sequence for squashed migrations.
2021-10-15 06:59:31 +02:00
Jacob Walls
6e4ac28af0
Refs #23953 -- Added MigrationAutodetector.parse_number() tests.
2021-10-15 06:59:31 +02:00
Jacob Walls
32f1fe5f89
Fixed #29470 -- Logged makemigrations automatic decisions in non-interactive mode.
2021-10-12 15:19:39 +02:00
Jacob Walls
241ba23870
Refs #29470 -- Added makemigrations test for adding fields with no default and auto_now_add=True in non-interactive mode.
2021-10-12 15:19:39 +02:00
Mariusz Felisiak
01bf679e59
Fixed #33022 -- Fixed isolation of migrations.test_executor.ExecutorTests.test_custom_user().
2021-10-08 15:51:04 +02:00
Jacob Walls
47f791f132
Fixed #23408 -- Added migrations questioner prompt for adding unique fields with a callable default.
2021-10-06 08:05:33 +02:00
AliGhotbizadeh
b8f3a3ad54
Refs #33119 -- Added tests for changing model name case referenced by ManyToManyField.
...
Fixed in aa4acc164d
.
2021-09-20 12:00:10 +02:00
Carlton Gibson
306607d5b9
Fixed #32365 -- Made zoneinfo the default timezone implementation.
...
Thanks to Adam Johnson, Aymeric Augustin, David Smith, Mariusz Felisiak, Nick
Pope, and Paul Ganssle for reviews.
2021-09-16 12:11:05 +02:00
Mariusz Felisiak
1eb3f500a4
Fixed #33057 -- Fixed recreation of foreign key constraints in m2m tables when altering type of referenced primary key on Oracle.
2021-08-31 13:43:10 +02:00
Jacob Walls
3219dd3388
Fixed #24900 -- Allowed migrating backward to squashed migrations.
2021-08-30 12:08:04 +02:00
Jacob Walls
9e17cc062c
Refs #24900 -- Added MigrationLoader test for applying squashed migrations.
2021-08-30 11:40:27 +02:00
Mateo Radman
02bc7161ec
Fixed #32900 -- Improved migrations questioner prompts.
2021-08-27 13:27:41 +02:00
Mateo Radman
61c5eae516
Refs #32900 -- Added makemigrations tests for messages in interactive mode.
2021-08-27 13:27:41 +02:00
Mateo Radman
d00fb4d2d6
Refs #32900 -- Added test for ignoring the default value in InteractiveMigrationQuestioner.ask_not_null_alteration().
2021-08-27 13:27:37 +02:00
Mariusz Felisiak
fa1d7ba5b9
Refs #29898 -- Changed fields in ProjectState's relation registry to dict.
2021-08-26 07:49:37 +02:00
Manav Agarwal
196a99da5d
Refs #29898 -- Made ProjectState encapsulate alterations in relations registry.
...
Thanks Simon Charette and Chris Jerdonek for reviews.
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2021-08-25 09:12:01 +02:00
Chris Jerdonek
7800596924
Fixed #33014 -- Made ProjectState raise exception when real_apps argument is not a set.
2021-08-19 10:18:51 +02:00
Mariusz Felisiak
54a30a7a00
Refs #29898 -- Changed ProjectState.real_apps to set.
2021-08-11 09:01:14 +02:00
Jacob Walls
910ecd1b8d
Fixed #29063 -- Fixed migrate crash when specifying a name of partially applied squashed migrations.
2021-08-04 09:57:32 +02:00
Jacob Walls
202d3e193a
Fixed typos in migrations tests, comments, and error message.
2021-08-04 09:28:23 +02:00
Mariusz Felisiak
52f9cfee9f
Used assertRaisesMessage() to test MigrationLoader.get_migration_by_prefix()'s error messages.
2021-08-04 09:20:26 +02:00
David Smith
1cba320786
Refs #32956 -- Changed "afterwards" to "afterward" in docs and comments.
...
This also removes unnecessary comments with the previous spelling.
AP Stylebook has a short entry to advise the preferred spelling for
"en-us". "Afterwards" is preferred in British English.
2021-07-27 10:41:51 +02:00
Jordan Bae
3d9040a50b
Refs #32743 -- Fixed recreation of foreign key constraints when altering type of referenced primary key with MTI.
...
Follow up to 325d7710ce
.
2021-07-27 07:30:33 +02:00
David Wobrock
325d7710ce
Fixed #32743 -- Added foreign key altering when altering type of referenced primary key with MTI.
2021-07-26 08:51:56 +02:00
abhiabhi94
fde6fb2898
Fixed #32893 -- Fixed serialization of models.Model class in migrations.
...
Migrations assumed that an import of the models.Model class must
already be included when it's serialized, but for models with only
custom fields this was not necessarily the case.
Thanks Jaap Joris Vens for the report.
2021-07-01 12:42:32 +02:00
Jacob Walls
2dfc1066a0
Fixed #25250 -- Clarified partially recorded state of squashed migrations in showmigrations --list.
2021-06-11 09:35:42 +02:00
Jacob Walls
c0e29cec83
Fixed #25255 -- Recorded unapplied squashed migrations.
2021-06-08 08:40:34 +02:00
luzpaz
bbf09254a3
Fixed typos in test comments.
2021-06-07 20:54:28 +02:00
Chris Jerdonek
7272e1963f
Fixed #32821 -- Updated os.scandir() uses to use a context manager.
2021-06-07 06:52:42 +02:00
Hannes Ljungberg
3e0fdf5546
Fixed #32780 -- Made Add/RemoveConstraint operations a noop for covering/deferrable unique constraints on SQLite.
2021-05-25 11:34:25 +02:00
Nick Pope
d06c5b3581
Fixed #32366 -- Updated datetime module usage to recommended approach.
...
- Replaced datetime.utcnow() with datetime.now().
- Replaced datetime.utcfromtimestamp() with datetime.fromtimestamp().
- Replaced datetime.utctimetuple() with datetime.timetuple().
- Replaced calendar.timegm() and datetime.utctimetuple() with datetime.timestamp().
2021-05-12 11:08:41 +02:00
Nick Pope
6b7960188b
Added extra assertion to migrations.test_writer.WriterTests.test_serialize_datetime.
...
This checks that datetime.timezone.utc serializes correctly.
2021-05-12 11:06:30 +02:00
Hannes Ljungberg
eab71f7690
Fixed #32686 -- Removed unnecessary semicolon on collected multiline SQL for RunSQL.
2021-04-27 08:01:07 +02:00
Hannes Ljungberg
95754dbc9b
Refs #32686 -- Added tests for adding a semicolon when collecting SQL for RunSQL.
2021-04-27 07:59:41 +02:00
Mariusz Felisiak
2f435e75ab
Fixed isolation of test_showmigrations_unmigrated_app().
...
Follow up to 90916f050c
.
2021-04-23 10:06:08 +02:00
Mariusz Felisiak
90916f050c
Fixed isolation of test_showmigrations_unmigrated_app().
2021-04-22 17:43:58 +02:00
David Wobrock
aa4acc164d
Fixed #29899 -- Made autodetector use model states instead of model classes.
...
Thanks Simon Charette and Markus Holtermann for reviews.
2021-04-16 11:18:10 +02:00
manav014
99640e24b4
Fixed #31516 -- Improved naming of migrations with multiple operations.
...
52 gives 60 in total (52 + 5 + 3).
Co-authored-by: Adam Johnson <me@adamj.eu>
2021-03-12 11:56:12 +01:00
Adam Johnson
927fead2f5
Refs #31516 -- Added Migration.suggest_name() tests for migrations with no operations.
2021-03-12 11:56:12 +01:00
Adam Johnson
b1cb923883
Refs #31516 , Refs #31703 -- Made makemigrations always name initial migrations "initial".
2021-03-12 09:19:23 +01:00
Hannes Ljungberg
3aa545281e
Fixed #30916 -- Added support for functional unique constraints.
...
Thanks Ian Foote and Mariusz Felisiak for reviews.
2021-02-23 20:19:53 +01:00
Hannes Ljungberg
87acbf0631
Fixed #32458 -- Made __repr__() for Index and BaseConstraint subclasses more consistent.
2021-02-19 20:25:11 +01:00
Hasan Ramezani
7c18b22e2f
Fixed #32256 -- Fixed migration optimization crash when swapping field names.
...
This disables optimization of RenameField operation when an old field
name is referenced in subsequent operations.
Co-authored-by: InvalidInterrupt <InvalidInterrupt@users.noreply.github.com>
2021-02-19 11:19:01 +01:00
Daniel Ebrahimian
3f8979e37b
Fixed #32350 -- Fixed showmigrations crash for applied squashed migrations.
...
Thanks Simon Charette for reviews.
2021-02-04 21:17:26 +01:00
Simon Charette
f23b05696e
Fixed #32395 -- Allowed capturing stdout of migration signals.
2021-02-04 11:19:49 +01:00
Simon Charette
42e8cf47c7
Fixed #32369 -- Fixed adding check constraints with pattern lookups and expressions as rhs.
...
This disables interpolation of constraint creation statements. Since
Constraint.create_sql interpolates its parameters instead of deferring
this responsibility to the backend connection it must disable
connection level parameters interpolation.
2021-01-26 06:41:57 +01:00
Simon Charette
0c42cdf0d2
Fixed #32374 -- Stopped recording migration application before deferred SQL.
...
Migrations cannot be recorded in the same transaction as its associated
DDL operations when some of it is deferred until the schema editor
context exits.
Regression in c86a3d80a2
.
2021-01-21 07:03:35 +01:00
Simon Charette
533a583578
Refs #29721 -- Simplified migration used to test atomic recording.
...
This makes sure atomic recording of migration application is used when
the schema editor doesn't defer any statement.
2021-01-21 06:50:23 +01:00
Hannes Ljungberg
83fcfc9ec8
Fixed #26167 -- Added support for functional indexes.
...
Thanks Simon Charette, Mads Jensen, and Mariusz Felisiak for reviews.
Co-authored-by: Markus Holtermann <info@markusholtermann.eu>
2021-01-13 11:47:50 +01:00
Hasan Ramezani
a2e3f95b09
Fixed #31413 -- Fixed isolation of migrations.test_loader on databases that don't support transactions.
2020-12-31 08:18:51 +01:00
William Schwartz
e64c1d8055
Fixed #32302 -- Allowed migrations to be loaded from regular packages with no __file__ attribute.
...
The migrations loader prevents the use of PEP-420 namespace packages
for holding apps' migrations modules. Previously the loader tested for
this only by checking that app.migrations.__file__ is present. This
prevented migrations' being found in frozen Python environments that
don't set __file__ on any modules. Now the loader *additionally* checks
whether app.migrations.__path__ is a list because namespace packages
use a different type for __path__. Namespace packages continue to be
forbidden, and, in fact, users of normal Python environments should
experience no change whatsoever.
2020-12-29 12:54:08 +01:00
Mariusz Felisiak
ada83fd8b8
Fixed isolation of test_migrate_fake_split_initial.
2020-12-23 07:48:45 +01:00
Hasan Ramezani
8d582bf510
Fixed #32262 -- Fixed migration optimization for model creation and Meta options removal.
2020-12-18 06:57:57 +01:00
Tim Graham
84ca7b8602
Removed hardcoded pks in migrations' test_alter_order_with_respect_to.
2020-11-07 20:26:01 +01:00
Mariusz Felisiak
e6b5108acc
Fixed #27417 -- Made RenameField operation a noop for field name case changes on Oracle.
...
Field names are always uppercased in the Oracle backend. Changing case
should be a noop to avoid database errors: "ORA-00957: duplicate column
name".
2020-09-04 20:27:23 +02:00
Koen De Wit
4c0b4720b0
Fixed #31954 -- Fixed migration optimization for MTI model creation with parent model with mixed case app label.
2020-08-28 13:35:13 +02:00
Iuri de Silvio
632ccffc49
Fixed #31826 -- Made AlterField operation a noop when adding db_column.
...
AlterField operation with adding a db_column is a noop if the column
name is not changed.
2020-08-14 13:13:36 +02:00
Iuri de Silvio
7f4c9222df
Fixed #31825 -- Made RenameField operation a noop for fields with db_column.
2020-08-13 13:14:58 +02:00
Iuri de Silvio
58a336a674
Fixed #31831 -- Fixed migration operations ordering when adding order_with_respect_to and constraints/indexes.
2020-08-08 20:43:45 +02:00
Iuri de Silvio
366a93f174
Refs #31831 -- Added autodector test for unique/index_together on _order field.
2020-08-08 20:43:40 +02:00
Tim Graham
ff55adbd0d
Reverted "Fixed #30300 -- Allowed migrations to be loaded from directories without __init__.py file."
...
This reverts commit 3cd3bebe89
.
2020-07-22 07:04:06 +02:00
Jon Dufresne
796be5901a
Fixed #31769 -- Improved default naming of merged migrations.
...
47 gives 60 in total (47 + 5 + 5 + 3).
2020-07-20 15:04:22 +02:00
François Freitag
04e4f80c1f
Sorted conflicting migrations by names.
2020-07-10 12:18:42 +02:00
Mariusz Felisiak
62d85a2835
Fixed #31742 -- Fixed makemigrations crash on ForeignKey to an app with mixed case label.
...
Regression in 9e1b6b8a66
.
Thanks Ignacio Santolin for the report.
2020-06-26 23:18:59 +02:00
Nick Pope
074844e947
Fixed #31529 -- Added support for serialization of pathlib.Path/PurePath and os.PathLike in migrations.
2020-06-24 11:45:34 +02:00
Jon Dufresne
6f3e3e87ab
Fixed #31703 -- Made makemigrations name all initial migrations "initial".
...
When the MigrationAutodetector creates more than one initial migration
in a app, name all initial migrations "initial" rather than the opaque
"auto_<DATE>_<TIME>" name.
Initial migrations that have a descriptive name continue to use the
descriptive name.
2020-06-24 07:18:45 +02:00
Jon Dufresne
01195c4a83
Refs #31703 -- Added Migration.suggest_name() test for initial migration with multiple CreateModels.
2020-06-24 07:18:38 +02:00
Jon Dufresne
bce180dd05
Refs #31703 -- Moved MigrationAutodetector.suggest_name() to Migration.
...
Allows expanding the method to inspect additional attributes of the
migration instance. For example, the Migration.initial attribute.
2020-06-24 07:01:11 +02:00
Chinmoy Chakraborty
2928019e0c
Fixed #31645 -- Enhanced the migration warning for migrate commmand.
...
Added the list of apps with changes not reflected in migrations.
2020-06-12 10:26:06 +02:00
davidchorpash
07506a6114
Fixed #31661 -- Removed period in makemigrations history check warning.
2020-06-08 06:46:23 +02:00
Hannes Ljungberg
8c7992f658
Fixed #30913 -- Added support for covering indexes on PostgreSQL 11+.
2020-06-04 12:26:22 +02:00
Adam Johnson
fa58450a9a
Fixed #31468 -- Allowed specifying migration filename in Operation.
...
This adds also suggested filename for many built-in operations.
2020-05-28 11:42:53 +02:00
Adam Johnson
5bd585a82d
Refs #31468 -- Added tests for MigrationAutodetector.suggest_name().
2020-05-28 11:24:58 +02:00
Mariusz Felisiak
42de52affe
Fixed isolation of test_migrate_fake_initial.
2020-05-28 09:32:43 +02:00
Nan Liu
33c365781a
Fixed #31416 -- Made autodetector find dependencies for MTI model creation on base fields removal.
...
Removing a base field must take place before adding a new inherited
model that has a field with the same name.
2020-05-26 07:26:07 +02:00
wtkm11
9756c33429
Fixed #31504 -- Allowed calling makemigrations without an active database connection.
2020-05-19 10:24:23 +02:00
Ian Foote
c226c6cb32
Fixed #20581 -- Added support for deferrable unique constraints.
2020-04-30 10:43:50 +02:00
François Freitag
f19bb54fb1
Added test for squashmigrations' output.
2020-04-28 06:32:43 +02:00
François Freitag
687cb38a05
Removed unnecessary capturing/hiding of stdout/stderr in various tests.
2020-04-27 08:06:12 +02:00
François Freitag
a8d175c297
Disabled management commands output with verbosity 0 in test_regression_22823_unmigrated_fk_to_migrated_model.
2020-04-27 07:43:09 +02:00
François Freitag
da606513db
Removed unnecessary capturing of stdout in test_makemigrations_non_interactive_not_null_addition.
2020-04-25 20:53:53 +02:00
David Wobrock
533b208775
Fixed #29224 -- Fixed removing index_together indexes if exists unique_together constraint on the same fields.
2020-04-23 12:28:51 +02:00
Simon Charette
06889d6206
Fixed #31499 -- Stored ModelState.fields into a dict.
...
This allows the removal of its O(n) .get_field_by_name method and many
other awkward access patterns.
While fields were initially stored in a list to preserve the initial
model definiton field ordering the auto-detector doesn't take field
ordering into account and no operations exists to reorder fields of a
model.
This makes the preservation of the field ordering completely superflous
because field reorganization after the creation of the model state
wouldn't be taken into account.
2020-04-22 07:10:00 +02:00
Simon Charette
696024fb73
Refs #31499 -- Ignored field ordering to determine ModelState equality.
2020-04-22 06:20:54 +02:00
Simon Charette
5220ca8d8a
Refs #30591 -- Adjusted table rebuild for non-pk relationship on SQLite.
...
The existing code was only accounting for primary key changes and not
all unique key fields that can be referenced.
2020-04-21 08:37:47 +02:00
Simon Charette
a548280857
Fixed #31064 -- Recreated auto-created many-to-many tables on primary key data type change on SQLite.
...
Both local and remote auto-created many-to-many relationships were
affected.
2020-04-21 08:37:40 +02:00
Simon Charette
2ba55b2905
Removed redundant import in tests/migrations/test_operations.py.
2020-04-21 08:37:37 +02:00
Simon Charette
8069526ce3
Made Operation.references_model/references_field require app_label.
...
This will allow them to drop a ton of logic to deal with null
app_label.
2020-04-09 10:08:06 +02:00
Simon Charette
25bf15c0da
Refs #22608 -- Made app_label required when optimizing migrations.
...
This paved the way for the removal of lot of logic when app_label was
not specified.
2020-04-09 10:08:02 +02:00