#8200 closed (worksforme)
manage.py syncdb fails following The flatpages app docs — at Version 4
Reported by: | creecode | Owned by: | nobody |
---|---|---|---|
Component: | Uncategorized | Version: | dev |
Severity: | Keywords: | ||
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
I was following along with the The flatpages app docs ( http://www.djangoproject.com/documentation/flatpages ) and when I got to the manage.py syncdb step I got the following error.
# manage.py syncdb Creating table django_flatpage Traceback (most recent call last): File "[stuff deleted]/manage.py", line 11, in <module> execute_manager(settings) File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 272, in execute_manager utility.execute() File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 219, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/usr/lib/python2.5/site-packages/django/core/management/base.py", line 72, in run_from_argv self.execute(*args, **options.__dict__) File "/usr/lib/python2.5/site-packages/django/core/management/base.py", line 86, in execute output = self.handle(*args, **options) File "/usr/lib/python2.5/site-packages/django/core/management/base.py", line 168, in handle return self.handle_noargs(**options) File "/usr/lib/python2.5/site-packages/django/core/management/commands/syncdb.py", line 91, in handle_noargs cursor.execute(statement) File "/usr/lib/python2.5/site-packages/MySQLdb/cursors.py", line 166, in execute self.errorhandler(self, exc, value) File "/usr/lib/python2.5/site-packages/MySQLdb/connections.py", line 35, in defaulterrorhandler raise errorclass, errorvalue _mysql_exceptions.OperationalError: (1005, "Can't create table './[stuff deleted]/#sql-48d_41.frm' (errno: 150)")
After some investigation I discovered this error occurs because I use...
DATABASE_OPTIONS = { 'init_command' : 'SET storage_engine = INNODB' }
...in my project settings file, I'm using MySQL for my database. I need to use INNODB files because I am using the binary log feature of MySQL for data recovery in case of disaster. I am using rev 7568 of the development trunk.
Any advice on a work-around welcome.
Change History (4)
comment:1 by , 16 years ago
Resolution: | → worksforme |
---|---|
Status: | new → closed |
follow-up: 3 comment:2 by , 16 years ago
Actually I just figured out how to get your error. I bet you neglected to also include "django.contrib.sites" in your INSALLED_APPS. If I add just flatpages, and not sites, I get the same errno 150 OperationalError.
comment:3 by , 16 years ago
Replying to Karen Tracey <kmtracey@gmail.com>:
I bet you neglected to also include "django.contrib.sites" in your INSALLED_APPS.
Sites "django.contrib.sites" was/is there. Additional info, if I comment out the DATABASE_OPTIONS, all works as expected.
I cannot recreate on r8277. Specifying InnoDB as the storage engine in DATABAE_OPTIONS via the init_command seems to work fine. I can add the flatpages app as described in the docs and the tabes get created with no errors.
You might try taking the SQL Django is generating (available from python manage.py sql flatpages) and running the commands individually in a mysql shell to see which one specifically is failing, that might give a clue. (Remember to first set storage_engine=innodb also.)
For reference, this is the SQL Django is generated for me on r8277: