Commit Graph

21 Commits

Author SHA1 Message Date
Muhammad Qasim Gulzar
d847d222b2 fix: migrations to make postgresql compatible. (#35762)
This commit introduces several improvements to database migration
scripts to enhance compatibility between MySQL and PostgreSQL, ensure
case-sensitive behavior where needed, and improve migration safety and
correctness. The changes include dynamic SQL generation based on the
database engine, improved transaction handling, and adjustments to
field types and adapters for better cross-database support.

Database compatibility and case sensitivity improvements:

- Migration scripts in split_modulestore_django and learning_sequences
  now dynamically generate SQL statements for altering column case
  sensitivity and uniqueness based on whether the database is MySQL or
  PostgreSQL, ensuring correct behavior across both backends.
  - common/djangoapps/split_modulestore_django/migrations/0001_initial.py
  - openedx/core/djangoapps/content/learning_sequences/migrations/0001_initial.py

- The courseware.fields module now checks for "postgresql" in the
  database engine string instead of a specific backend name, improving
  compatibility with different PostgreSQL drivers.
  - lms/djangoapps/courseware/fields.py

- The 0011_csm_id_bigint migration in courseware now supports both MySQL
  and PostgreSQL for altering column types, with specific SQL for each
  backend.
  - lms/djangoapps/courseware/migrations/0011_csm_id_bigint.py

- The 0009_readd_facebook_url migration in course_overviews now
  introspects the table structure using backend-specific SQL for MySQL
  and PostgreSQL, ensuring correct detection of existing fields.
  - openedx/core/djangoapps/content/course_overviews/migrations/0009_readd_facebook_url.py

Migration safety and correctness:

- Service user creation and deletion in the commerce app is now wrapped
  in atomic transactions to ensure database consistency.
  - lms/djangoapps/commerce/migrations/0001_data__add_ecommerce_service_user.py

- The move_overrides_to_edx_when migration in courseware now specifies
  a no-op reverse migration, preventing accidental data loss on migration
  rollback.
  - lms/djangoapps/courseware/migrations/0008_move_idde_to_edx_when.py

Adapter registration and code cleanup:

- The common_initialization app now registers custom adapters for
  CourseLocator and related classes in psycopg2 when using PostgreSQL,
  ensuring proper serialization of these types.
  - openedx/core/djangoapps/common_initialization/apps.py

- Minor code cleanup and formatting improvements in migration files,
  including import order and field formatting for readability.
  - lms/djangoapps/grades/migrations/0015_historicalpersistentsubsectiongradeoverride.py
2026-02-12 14:02:46 -05:00
Usama Sadiq
2adf8b759e refactor: ran pyupgrade on lms/djangoapps/commerce (#26734) 2021-03-09 14:21:08 +05:00
Saleem Latif
54f59bc3b4 Revert migration update as it creates more issues than it fixes. 2020-11-19 11:25:16 +05:00
Saleem Latif
c0de670c5b Fix sandboax builds, because of signal chains, UserProfile table must be predent before adding a User 2020-11-18 12:55:40 +05:00
Robert Raposa
5de9eed420 ARCHBOM-1093: Fix unit test enable-migrations (#23789)
* fix old migrations
* fix a test
* fix enable-migrations cmd argument
* enhance verbose logging to log migrations
* update testing doc with help
2020-04-23 14:04:29 -04:00
Feanil Patel
9cf2f9f298 Run 2to3 -f future . -w
This will remove imports from __future__ that are no longer needed.

https://docs.python.org/3.5/library/2to3.html#2to3fixer-future
2019-12-30 10:35:30 -05:00
Matt Tuchfarber
865114cba6 Add data migration to fix ecommerce_worker email
ecommerce_worker is the only service user with a @fake.email  instead of
an @example.com email address. This was fixed manually in a devstack sql
dump, but was lost during the next sql dump. This will fix it moving
forward so we don't have to work around it.
2019-10-29 14:04:29 -04:00
Manjinder Singh
80c7f5af01 BOM-933: Fix type mismatches in various migrations 5 (#22147)
* fix type mismatch in third_party_auth migrations

* fix type mismatch in verify_student  migrations

* fix type mismatch in video_config  migrations

* fix type mismatch in verified_track_content  migrations

* fix type mismatch in commercemigrations

* fix type mismatch in xblock_config migrations

* fix type mismatch in course_creators migrations

* fix type mismatch in contentstore migrations
2019-10-24 16:08:04 -04:00
Stu Young
94efff4636 INCR-279 Run python-modernize on lms/djangoapps/commerce/migrations (#20580)
* run python modernize

* run isort
2019-05-21 11:40:28 -04:00
Tasawer Nawaz
4912888168 stop using deprecated single item basket view
LEARNER-4428
2018-03-14 20:29:51 +05:00
Michael Frey
c8b5dc06da Only use ecommerce hosted receipt page
LEANER-616
2017-04-24 19:25:21 -04:00
Michael Frey
b2dcc9c49b Revert "Only use ecommerce hosted receipt page" 2017-04-24 14:39:07 -04:00
Michael Frey
9ac4cef972 Only use ecommerce hosted receipt page
LEARNER-616
2017-04-24 10:46:48 -04:00
Clinton Blackburn
7c39978b06 Automated refund approval process
Refunds are now processed automatically. If the automated processing fails, the system falls back to the previous behavior of notifying the Support Team. Additionally, these calls are all made by the service user rather than the learner.

ECOM-6541
2017-02-01 01:51:21 -05:00
Michael Frey
c52ba6ac75 Revert "[SOL-1953] Update Commerce Configuration" 2016-09-21 15:33:02 -04:00
Marko Jevtic
ab9c858b54 [SOL-1953] Update Commerce Configuration 2016-09-02 08:28:18 +00:00
Ahsan Ulhaq
d31b7cbd68 Complete Order History area for students
ECOM-2361
2016-06-08 21:45:07 +05:00
muzaffaryousaf
e2d9ecc010 Make migrations in-sync with models 2016-04-07 12:26:18 +05:00
vkaracic
86a4710ee8 Otto checkout flow 2016-02-17 18:16:44 +01:00
Usman Khalid
6cb62f2697 Rebase upgrade Django to v1.8.5
Please note that this is a squshed commit and the work of:
Symbolist, macdiesel, nedbat, doctoryes, muzaffaryousaf and muhammad-ammar
2015-11-10 15:00:19 -05:00
Renzo Lucioni
fda61b52aa Reserve ecommerce worker username
Django's user model allows email addresses to be blank. However, edx-platform includes a migration requiring that email addresses be unique. Someone in our production environment already had a blank email address, so this migration was failing earlier.
2015-10-21 15:27:50 -04:00