Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Must be owner of relation django_site when manage.py migrate

Tags:

After long long search about postgre, about manage.py killorphant, about django_site, nothing was able to help me with this error:

Synchronizing apps without migrations:   Creating tables...   Installing custom SQL...   Installing indexes... Running migrations:   Applying sites.0002_auto_20150929_1444...Traceback (most recent call last):   **File "/var/www/webapps/lib/python3.4/site-packages/django/db/backends/utils.py", line 65, in execute     return self.cursor.execute(sql, params) psycopg2.ProgrammingError: must be owner of relation django_site** 

The above exception was the direct cause of the following exception:

Traceback (most recent call last):   File "./manage.py", line 11, in <module>     execute_from_command_line(sys.argv)   File "/var/www/webapps/lib/python3.4/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line     utility.execute()   File "/var/www/webapps/lib/python3.4/site-packages/django/core/management/__init__.py", line 377, in execute     self.fetch_command(subcommand).run_from_argv(self.argv)   File "/var/www/webapps/lib/python3.4/site-packages/django/core/management/base.py", line 288, in run_from_argv     self.execute(*args, **options.__dict__)   File "/var/www/webapps/lib/python3.4/site-packages/django/core/management/base.py", line 338, in execute     output = self.handle(*args, **options)   File "/var/www/webapps/lib/python3.4/site-packages/django/core/management/commands/migrate.py", line 161, in handle     executor.migrate(targets, plan, fake=options.get("fake", False))   File "/var/www/webapps/lib/python3.4/site-packages/django/db/migrations/executor.py", line 68, in migrate     self.apply_migration(migration, fake=fake)   File "/var/www/webapps/lib/python3.4/site-packages/django/db/migrations/executor.py", line 102, in apply_migration     migration.apply(project_state, schema_editor)   File "/var/www/webapps/lib/python3.4/site-packages/django/db/migrations/migration.py", line 108, in apply     operation.database_forwards(self.app_label, schema_editor, project_state, new_state)   File "/var/www/webapps/lib/python3.4/site-packages/django/db/migrations/operations/fields.py", line 139, in database_forwards     schema_editor.alter_field(from_model, from_field, to_field)   File "/var/www/webapps/lib/python3.4/site-packages/django/db/backends/schema.py", line 470, in alter_field     self._alter_field(model, old_field, new_field, old_type, new_type, old_db_params, new_db_params, strict)   File "/var/www/webapps/lib/python3.4/site-packages/django/db/backends/schema.py", line 642, in _alter_field     self.execute(self._create_unique_sql(model, [new_field.column]))   File "/var/www/webapps/lib/python3.4/site-packages/django/db/backends/schema.py", line 111, in execute     cursor.execute(sql, params)   File "/var/www/webapps/lib/python3.4/site-packages/django/db/backends/utils.py", line 81, in execute     return super(CursorDebugWrapper, self).execute(sql, params)   File "/var/www/webapps/lib/python3.4/site-packages/django/db/backends/utils.py", line 65, in execute     return self.cursor.execute(sql, params)   File "/var/www/webapps/lib/python3.4/site-packages/django/db/utils.py", line 94, in __exit__     six.reraise(dj_exc_type, dj_exc_value, traceback)   File "/var/www/webapps/lib/python3.4/site-packages/django/utils/six.py", line 658, in reraise     raise value.with_traceback(tb)   File "/var/www/webapps/lib/python3.4/site-packages/django/db/backends/utils.py", line 65, in execute     **return self.cursor.execute(sql, params) django.db.utils.ProgrammingError: must be owner of relation django_site** 

So, after checking and re checking, django-site is in the installed apps list, site_id = 1 ; my database works except for some images problems.. Well then I tried to do some migrations but this error keep on running and I am now desperate on finding the issue.

Does someone has a clue about it ?

like image 600
Jay Cee Avatar asked Oct 15 '15 09:10

Jay Cee


People also ask

How does Django migration work?

Migrations are Django's way of propagating changes you make to your models (adding a field, deleting a model, etc.) into your database schema. They're designed to be mostly automatic, but you'll need to know when to make migrations, when to run them, and the common problems you might run into.

What is difference between migrate and migration in Django?

So the difference between makemigrations and migrate is this: makemigrations auto generates migration files containing changes that need to be applied to the database, but doesn't actually change anyhting in your database. migrate will make the actual modifications to your database, based on the migration files.

What is Python migrate?

migrate executes those SQL commands in the database file. So after executing migrate all the tables of your installed apps are created in your database file. You can confirm this by installing SQLite browser and opening db.


1 Answers

The database user you use for django to connect to the database is not the owner of the table. You need to change it on the postgres shell or maybe pgadmin3 can help.

Something like:

ALTER DATABASE your_db OWNER TO your_django_db_user ALTER TABLE django_site OWNER TO your_django_db_user 
like image 50
djangonaut Avatar answered Dec 27 '22 13:12

djangonaut