Problem with Postgresql-11.9 ??

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Problem with Postgresql-11.9 ??

Joakim Hove-4

[ This question is also posted to StackOverflow: https://stackoverflow.com/questions/64320386/django-postgresql-model-with-only-foreign-keys ]

I have a model which looks like this:

class InputTypeMap(models.Model):
    input_type = models.ForeignKey(InputType, on_delete=models.CASCADE)
    training = models.ForeignKey(Training, on_delete=models.CASCADE)
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    gender = models.ForeignKey(Gender, on_delete=models.CASCADE)

When I try to create instances of this model with:

InputTypeMap.objects.create(input_type=input_type,
                            training=training,
                            gender=gender,
                            category=category)

I get an exception when using Postgres-11.9:

Traceback (most recent call last):
  File "/home/hove/sleipner/venv/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
psycopg2.errors.NotNullViolation: null value in column "id" violates not-null constraint
DETAIL:  Failing row contains (null, Maintenance, Female, MareGielding, No).

From the error message it seems to me that a ID key for the new entry is not generated. This code has worked as I expected for quite some time, but has "suddenly" started to fail locally - probably after a apt get upgrade. When I run the same code with sqlite or Postgres-10.14 thing continue to work as before. It is not clear to me whether this is a bug in my code (most probable ...), Django or Postgres. I am using Django version 3.1.2

Any hints appreciated.

Regards - Joakim Hove

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CALKD1M-YbR80USkq%2BLLyWHR7iem66ALcc9bH6dYGOEP9ywWkfA%40mail.gmail.com.
Reply | Threaded
Open this post in threaded view
|

Re: Problem with Postgresql-11.9 ??

Thomas Lockhart
No one has answered yet, so here is some useless info…

I’ve been using various combinations of Postgres and Django (currently 12.4 and 3.1.2, respectively) and would think I would have stumbled on this at some point when using postgresql-11. But I probably haven’t tried 11.x with 3.1.2 specifically…

- Tom

On Oct 12, 2020, at 9:24 AM, Joakim Hove <[hidden email]> wrote:

[ This question is also posted to StackOverflow: https://stackoverflow.com/questions/64320386/django-postgresql-model-with-only-foreign-keys ]

I have a model which looks like this:

class InputTypeMap(models.Model):
    input_type = models.ForeignKey(InputType, on_delete=models.CASCADE)
    training = models.ForeignKey(Training, on_delete=models.CASCADE)
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    gender = models.ForeignKey(Gender, on_delete=models.CASCADE)

When I try to create instances of this model with:

InputTypeMap.objects.create(input_type=input_type,
                            training=training,
                            gender=gender,
                            category=category)

I get an exception when using Postgres-11.9:

Traceback (most recent call last):
  File "/home/hove/sleipner/venv/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
psycopg2.errors.NotNullViolation: null value in column "id" violates not-null constraint
DETAIL:  Failing row contains (null, Maintenance, Female, MareGielding, No).

From the error message it seems to me that a ID key for the new entry is not generated. This code has worked as I expected for quite some time, but has "suddenly" started to fail locally - probably after a apt get upgrade. When I run the same code with sqlite or Postgres-10.14 thing continue to work as before. It is not clear to me whether this is a bug in my code (most probable ...), Django or Postgres. I am using Django version 3.1.2

Any hints appreciated.

Regards - Joakim Hove


--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CALKD1M-YbR80USkq%2BLLyWHR7iem66ALcc9bH6dYGOEP9ywWkfA%40mail.gmail.com.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/1C816206-3EC7-4696-806E-FD810E76C251%40gmail.com.
Reply | Threaded
Open this post in threaded view
|

Re: Problem with Postgresql-11.9 ??

Joakim Hove-4
Thank you for answering. Just to be sure: you agree that the behavior I describe looks like a bug somewhere?

man. 12. okt. 2020, 23:42 skrev Thomas Lockhart <[hidden email]>:
No one has answered yet, so here is some useless info…

I’ve been using various combinations of Postgres and Django (currently 12.4 and 3.1.2, respectively) and would think I would have stumbled on this at some point when using postgresql-11. But I probably haven’t tried 11.x with 3.1.2 specifically…

- Tom

On Oct 12, 2020, at 9:24 AM, Joakim Hove <[hidden email]> wrote:

[ This question is also posted to StackOverflow: https://stackoverflow.com/questions/64320386/django-postgresql-model-with-only-foreign-keys ]

I have a model which looks like this:

class InputTypeMap(models.Model):
    input_type = models.ForeignKey(InputType, on_delete=models.CASCADE)
    training = models.ForeignKey(Training, on_delete=models.CASCADE)
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    gender = models.ForeignKey(Gender, on_delete=models.CASCADE)

When I try to create instances of this model with:

InputTypeMap.objects.create(input_type=input_type,
                            training=training,
                            gender=gender,
                            category=category)

I get an exception when using Postgres-11.9:

Traceback (most recent call last):
  File "/home/hove/sleipner/venv/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
psycopg2.errors.NotNullViolation: null value in column "id" violates not-null constraint
DETAIL:  Failing row contains (null, Maintenance, Female, MareGielding, No).

From the error message it seems to me that a ID key for the new entry is not generated. This code has worked as I expected for quite some time, but has "suddenly" started to fail locally - probably after a apt get upgrade. When I run the same code with sqlite or Postgres-10.14 thing continue to work as before. It is not clear to me whether this is a bug in my code (most probable ...), Django or Postgres. I am using Django version 3.1.2

Any hints appreciated.

Regards - Joakim Hove


--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CALKD1M-YbR80USkq%2BLLyWHR7iem66ALcc9bH6dYGOEP9ywWkfA%40mail.gmail.com.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/1C816206-3EC7-4696-806E-FD810E76C251%40gmail.com.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CALKD1M8O4%3DtQ%2BxuEE7%2BzC17%2BjnotzUzEDU3EkoqVTPDOTngQMg%40mail.gmail.com.
Reply | Threaded
Open this post in threaded view
|

Re: Problem with Postgresql-11.9 ??

David Nugent
In __your__ code, most certainly.  :-)

You didn't say what 'training', 'input_type' and 'gender' are. It is in one or more of those where the problem exists.

Do these referenced save module instances? If they are not yet saved then it will trigger this error for fields where 



On 13 Oct 2020, at 08:49, Joakim Hove <[hidden email]> wrote:

Thank you for answering. Just to be sure: you agree that the behavior I describe looks like a bug somewhere?

man. 12. okt. 2020, 23:42 skrev Thomas Lockhart <[hidden email]>:
No one has answered yet, so here is some useless info…

I’ve been using various combinations of Postgres and Django (currently 12.4 and 3.1.2, respectively) and would think I would have stumbled on this at some point when using postgresql-11. But I probably haven’t tried 11.x with 3.1.2 specifically…

- Tom

On Oct 12, 2020, at 9:24 AM, Joakim Hove <[hidden email]> wrote:

[ This question is also posted to StackOverflow: https://stackoverflow.com/questions/64320386/django-postgresql-model-with-only-foreign-keys ]

I have a model which looks like this:

class InputTypeMap(models.Model):
    input_type = models.ForeignKey(InputType, on_delete=models.CASCADE)
    training = models.ForeignKey(Training, on_delete=models.CASCADE)
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    gender = models.ForeignKey(Gender, on_delete=models.CASCADE)

When I try to create instances of this model with:

InputTypeMap.objects.create(input_type=input_type,
                            training=training,
                            gender=gender,
                            category=category)

I get an exception when using Postgres-11.9:

Traceback (most recent call last):
  File "/home/hove/sleipner/venv/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
psycopg2.errors.NotNullViolation: null value in column "id" violates not-null constraint
DETAIL:  Failing row contains (null, Maintenance, Female, MareGielding, No).

From the error message it seems to me that a ID key for the new entry is not generated. This code has worked as I expected for quite some time, but has "suddenly" started to fail locally - probably after a apt get upgrade. When I run the same code with sqlite or Postgres-10.14 thing continue to work as before. It is not clear to me whether this is a bug in my code (most probable ...), Django or Postgres. I am using Django version 3.1.2

Any hints appreciated.

Regards - Joakim Hove


--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CALKD1M-YbR80USkq%2BLLyWHR7iem66ALcc9bH6dYGOEP9ywWkfA%40mail.gmail.com.


--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/1C816206-3EC7-4696-806E-FD810E76C251%40gmail.com.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CALKD1M8O4%3DtQ%2BxuEE7%2BzC17%2BjnotzUzEDU3EkoqVTPDOTngQMg%40mail.gmail.com.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/270DF6AB-0CF9-471B-AF95-B18959CFCF64%40uniquode.io.
Reply | Threaded
Open this post in threaded view
|

Re: Problem with Postgresql-11.9 ??

David Nugent
Apologies, I must have bumped send accidentally.

To complete the sentence, unless fields have null=True then referencing unsaved records here will fail because there is no id in the dependent records to provide a reference. By default there is a constraint that the reference is not null.

But rather than add null=True to fields, you probably need to ensure those model instances are saved and populated with a valid record before saving your InputTypeMap record.

It would have little to do with the database, any version. That would be the last place I'd go looking for such an issue.

Regards, David

On 17 Oct 2020, at 15:13, David Nugent <[hidden email]> wrote:

In __your__ code, most certainly.  :-)

You didn't say what 'training', 'input_type' and 'gender' are. It is in one or more of those where the problem exists.

Do these referenced save module instances? If they are not yet saved then it will trigger this error for fields where 



On 13 Oct 2020, at 08:49, Joakim Hove <[hidden email]> wrote:

Thank you for answering. Just to be sure: you agree that the behavior I describe looks like a bug somewhere?

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/C6EE4597-0907-49BE-8E94-1BC8B9E592A0%40uniquode.io.
Reply | Threaded
Open this post in threaded view
|

Re: Problem with Postgresql-11.9 ??

Israel Adeyeye
Hey David, how are you? Please I need help.

I have been battling with installing psycopg2 on my virtual environment to i can do migration, but I have not been able to do so because whenever i tried make migrations, I receive this

Traceback (most recent call last):
  File "C:\Users\lenovo\Envs\easynet\lib\site-packages\django\db\backends\postgresql\base.py", line 25, in <module>
    import psycopg2 as Database
  File "C:\Users\lenovo\Envs\easynet\lib\site-packages\psycopg2\__init__.py", line 51, in <module>
    from psycopg2._psycopg import (                     # noqa
ModuleNotFoundError: No module named 'psycopg2._psycopg'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\lenovo\miv\ryc\manage.py", line 22, in <module>
    main()
  File "C:\Users\lenovo\miv\ryc\manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "C:\Users\lenovo\Envs\easynet\lib\site-packages\django\core\management\__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "C:\Users\lenovo\Envs\easynet\lib\site-packages\django\core\management\__init__.py", line 377, in execute
    django.setup()
  File "C:\Users\lenovo\Envs\easynet\lib\site-packages\django\__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\Users\lenovo\Envs\easynet\lib\site-packages\django\apps\registry.py", line 114, in populate
    app_config.import_models()
  File "C:\Users\lenovo\Envs\easynet\lib\site-packages\django\apps\config.py", line 211, in import_models
    self.models_module = import_module(models_module_name)
  File "c:\users\lenovo\appdata\local\programs\python\python39\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load

  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 790, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "C:\Users\lenovo\miv\ryc\food\models.py", line 3, in <module>
    class Menu(models.Model):
  File "C:\Users\lenovo\Envs\easynet\lib\site-packages\django\db\models\base.py", line 122, in __new__
    new_class.add_to_class('_meta', Options(meta, app_label))
  File "C:\Users\lenovo\Envs\easynet\lib\site-packages\django\db\models\base.py", line 326, in add_to_class
    value.contribute_to_class(cls, name)
  File "C:\Users\lenovo\Envs\easynet\lib\site-packages\django\db\models\options.py", line 206, in contribute_to_class
    self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
  File "C:\Users\lenovo\Envs\easynet\lib\site-packages\django\db\__init__.py", line 28, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "C:\Users\lenovo\Envs\easynet\lib\site-packages\django\db\utils.py", line 214, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "C:\Users\lenovo\Envs\easynet\lib\site-packages\django\db\utils.py", line 111, in load_backend
    return import_module('%s.base' % backend_name)
  File "c:\users\lenovo\appdata\local\programs\python\python39\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 790, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "C:\Users\lenovo\Envs\easynet\lib\site-packages\django\db\backends\postgresql\base.py", line 29, in <module>
    raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)

django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named 'psycopg2._psycopg'

On Saturday, October 17, 2020 at 5:40:05 AM UTC+1 David Nugent wrote:
Apologies, I must have bumped send accidentally.

To complete the sentence, unless fields have null=True then referencing unsaved records here will fail because there is no id in the dependent records to provide a reference. By default there is a constraint that the reference is not null.

But rather than add null=True to fields, you probably need to ensure those model instances are saved and populated with a valid record before saving your InputTypeMap record.

It would have little to do with the database, any version. That would be the last place I'd go looking for such an issue.

Regards, David

On 17 Oct 2020, at 15:13, David Nugent <[hidden email]> wrote:

In __your__ code, most certainly.  :-)

You didn't say what 'training', 'input_type' and 'gender' are. It is in one or more of those where the problem exists.

Do these referenced save module instances? If they are not yet saved then it will trigger this error for fields where 



On 13 Oct 2020, at 08:49, Joakim Hove <[hidden email]> wrote:

Thank you for answering. Just to be sure: you agree that the behavior I describe looks like a bug somewhere?

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/2958ca44-c62f-446e-84ae-c77ad0164a1dn%40googlegroups.com.