On Fri, Nov 18, 2011 at 12:04 PM, Tom Evans <tevans...@googlemail.com>wrote:

> On Fri, Nov 18, 2011 at 8:20 AM, Kayode Odeyemi <drey...@gmail.com> wrote:
> > Hello friends,
> >
> > I'm having a deep Django-MySQLDB error and I'm doing some debugging to
> > trace exactly where the problem is. It seems to me that this is very
> related
> > to MySQLDB
> > cursor implementaton.
> >
> > What I want to do is to run the raw sql from the interactive mode like
> this:
> >
> > import MySQLdb
> > db=MySQLdb.connect(passwd="pass",db="dname")
> > c=db.cursor()
> > max_price=5
> > c.execute(RAW_SQL_HERE)
> >
> > In case you don't mind, here is the full stack trace:
> >
> > Traceback (most recent call last):
> > File
> >
> "C:\Python27\lib\site-packages\celery-2.3.2-py2.7.egg\celery\execute\trace.py"
> > , line 36, in trace
> > return cls(states.SUCCESS, retval=fun(*args, **kwargs))
> > File
> >
> "C:\Python27\lib\site-packages\celery-2.3.2-py2.7.egg\celery\app\task\__init__
> > .py", line 232, in __call__
> > return self.run(*args, **kwargs)
> > File
> >
> "C:\Python27\lib\site-packages\celery-2.3.2-py2.7.egg\celery\app\__init__.py",
> > line 172, in run
> > return fun(*args, **kwargs)
> > File
> >
> "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\db\transaction.py",
> > line 217, in inner
> > res = func(*args, **kwargs)
> > File "api\tasks.py", line 146, in queue_transaction
> > txn.save()
> > File
> >
> "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\db\models\base.py",
> > line 460, in save
> > self.save_base(using=using, force_insert=force_insert,
> > force_update=force_update)
> >
> > File
> >
> "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\db\models\base.py",
> > line 570, in save_base
> > created=(not record_exists), raw=raw, using=using)
> > File
> >
> "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\dispatch\dispatcher
> > .py", line 172, in send
> > response = receiver(signal=self, sender=sender, **named)
> > File
> >
> "C:\Python27\lib\site-packages\django_audit_log-0.2.2-py2.7.egg\audit_log\mode
> > ls\managers.py", line 64, in post_save
> > self.create_log_entry(instance, created and 'I' or 'U')
> > File
> >
> "C:\Python27\lib\site-packages\django_audit_log-0.2.2-py2.7.egg\audit_log\mode
> > ls\managers.py", line 61, in create_log_entry
> > manager.create(action_type = action_type, **attrs)
> > File
> >
> "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\db\models\manager.p
> > y", line 138, in create
> > return self.get_query_set().create(**kwargs)
> > File
> >
> "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\db\models\query.py"
> > , line 360, in create
> > obj.save(force_insert=True, using=self.db)
> > File
> >
> "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\db\models\base.py",
> > line 460, in save
> > self.save_base(using=using, force_insert=force_insert,
> > force_update=force_update)
> >
> > File
> >
> "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\db\models\base.py",
> > line 553, in save_base
> > result = manager._insert(values, return_id=update_pk, using=using)
> > File
> >
> "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\db\models\manager.p
> > y", line 195, in _insert
> > return insert_query(self.model, values, **kwargs)
> > File
> >
> "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\db\models\query.py"
> > , line 1436, in insert_query
> > return query.get_compiler(using=using).execute_sql(return_id)
> > File
> >
> "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\db\models\sql\compi
> > ler.py", line 791, in execute_sql
> > cursor = super(SQLInsertCompiler, self).execute_sql(None)
> > File
> >
> "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\db\models\sql\compi
> > ler.py", line 735, in execute_sql
> > cursor.execute(sql, params)
> > File
> >
> "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\db\backends\util.py
> > ", line 34, in execute
> > return self.cursor.execute(sql, params)
> > File
> >
> "C:\Python27\lib\site-packages\django-1.3-py2.7.egg\django\db\backends\mysql\b
> > ase.py", line 86, in execute
> > return self.cursor.execute(query, args)
> > File "build\bdist.win32\egg\MySQLdb\cursors.py", line 176, in execute
> > if not self._defer_warnings: self._warning_check()
> > File "build\bdist.win32\egg\MySQLdb\cursors.py", line 92, in
> _warning_check
> > warn(w[-1], self.Warning, 3)
> > Warning: Data truncated for column 'jno' at row 1
> > None
> >
> >
> > Some of the solutions I found on the internet such as changing teh
> default
> > character set
> > to utf8 has been done. I also consulted MySQL doc ref by changing the
> > sql_mode to
> > TRADITIONA both at session and global level, as well as in settings.py.
> > Still no luck.
> >
> > Please how do I get the raw SQL executed by Django?
> >
> > Any help will be appreciated.
> >
>
> Your SQL query, which you didn't show, is inserting data into a DB
> table, whose definition you didn't show. The data it is inserting in,
> which you didn't show, is getting truncated in the 'jno' column.


Why this is getting truncated I don't know because the field has a length
of 50 and the value I'm trying to store is 01234SS. So I just concluded
that the data I'm trying to insert in not the problem here neither it is
the table structure.


> This
> is raised as an exception, since you set sql_mode to TRADITIONAL
>

Before setting the sql_mode to TRADITIONAL, it was at its default state,
and it still got the warnings as error.


> and/or run in DEBUG mode, which makes django configure
> Database.Warning as errors.
>

Does this mean that if I'm not running Django in DEBUG mode, the record
will still be inserted ignoring the warnings?

>
> Django doesn't execute the query, you are executing it on the raw DB
> cursor, so it will not be logged (certainly not by DDT).
>

Actually I just want to put some debug trace in Django source and
re-compile so I can see the raw sql. Isn't this possible? (Already
considering django-debug-toolbar)

>
> Cheers
>
> Tom
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To post to this group, send email to django-users@googlegroups.com.
> To unsubscribe from this group, send email to
> django-users+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
>
>


-- 
Odeyemi 'Kayode O.
http://www.sinati.com. t: @charyorde

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to