xtrinch / fcm-django

FCM Django: Send push notifications via django to websites, iOS & android mobile devices through FCM (Firebase Cloud Messaging)
http://fcm-django.readthedocs.io/
MIT License
764 stars 191 forks source link

Issue in migration #258

Open imnileshd opened 5 months ago

imnileshd commented 5 months ago

Getting Error at migrations - django.db.utils.ProgrammingError: ('42000', "[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Column 'registration_id' in table 'fcm_django_fcmdevice' is of a type that is invalid for use as a key column in an index. (1919) (SQLExecDirectW); [42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Could not create constraint. See previous errors. (1750)")

fcm-django - 2.0.1 backend - mssql-django==1.3

Akay7 commented 2 months ago

I bet it's the same error as it was with MySQL https://github.com/xtrinch/fcm-django/issues/236

Solution was to skip that migration on DB that doesn't supports such constraints.

jonesnc commented 1 month ago

I'm also getting this error in Oracle when migrations 0010 and 0011 try to run:

django.db.utils.DatabaseError: ORA-02329: column of datatype LOB cannot be unique or a primary key

And faking the migration like this solved the problem for me:

python manage.py migrate fcm_django --fake

Is there any chance we could get a proper fix for this?

Akay7 commented 1 month ago

Is there any chance we could get a proper fix for this?

I see few solution here

  1. Run those migrations as --fake flag since they doesn't supported by your DB
  2. Make a PR that will ignore those migrations for your DB. That will work in the same way as with flag --fake or on MySQL DB
  3. If the project is fresh, and then you can use swapped models. In that case you will have own Models with own Migrations. First version with Swapped Models support is 2.2.0rc0
jonesnc commented 1 month ago

@Akay7 Do you know when 2.2.0 will be fully released? I'd like to use the Swappable Model feature if possible, but I would need to use it within the next week or two. If not, i think I'll fake those migrations for my database, and migrate to the Swappable Model functionality when it's released.

Akay7 commented 1 month ago

Do you know when 2.2.0 will be fully released?

@jonesnc

No, I don't know. But you can specify rc version 2.2.0rc0 during installation.

I think we expect someone to write that something is broken in Release Candidate. If this doesn't happen for some time, the version will become Release without any changes in the code.

... and migrate to the Swappable Model functionality when it's released.

I'm afraid that migration from Original Model to Swapped Model could be much more complicated then start using release candidate version today.