I'd strongly advise you to read the section on the book about migrations and fixing broke migrations. If you're starting now with the scheduler, please do the following: - delete all databases/*_scheduler_*.table files - delete scheduler_worker, scheduler_tasks, scheduler_run table from your backend MANUALLY - use Scheduler(db, ...., migrate=True) - open appadmin - reset Scheduler(db, ...., migrate=False)
On Tuesday, August 26, 2014 11:18:25 AM UTC+2, Prasad Muley wrote: > > Hi, > I tried to access db.scheduler_run table but it is giving me following > error in web2py shell and app admin UI. > > *OperationalError: (1054, "Unknown column 'scheduler_run.scheduler_task' > in 'field list'")* > > > On Tue, Aug 26, 2014 at 1:04 PM, Niphlod <nip...@gmail.com <javascript:>> > wrote: > >> there's yet a scheduler_task table in the database. Fix migrations in the >> usual way, or set Scheduler(db,....,migrate=False) to avoid the error. >> >> >> On Tuesday, August 26, 2014 8:58:06 AM UTC+2, Prasad Muley wrote: >>> >>> Hi, >>> I've web2py 2.3 version. I tried to use scheduler for mail sending. >>> I got this error while creating a worker for scheduler >>> >>> $ python web2py.py -K send_mail_app >>> >>> [12:07:02] >>> web2py Web Framework >>> Created by Massimo Di Pierro, Copyright 2007-2014 >>> Version 2.3.2 (2012-12-17 15:03:30) stable >>> Database drivers available: SQLite(sqlite2), SQLite(sqlite3), >>> MySQL(pymysql), MySQL(MySQLdb), PostgreSQL(psycopg2), PostgreSQL(pg8000), >>> MSSQL(pyodbc), DB2(pyodbc), Teradata(pyodbc), IMAP(imaplib) >>> starting single-scheduler for "send_mail_app"... >>> Traceback (most recent call last): >>> File "/home/prasad/Rootpy/web2py 2.3/gluon/restricted.py", line 212, >>> in restricted >>> exec ccode in environment >>> File "applications/send_mail_app/models/scheduler.py", line 2, in >>> <module> >>> mail_scheduler = Scheduler(db) >>> File "/home/prasad/Rootpy/web2py 2.3/gluon/scheduler.py", line 449, in >>> __init__ >>> self.define_tables(db, migrate=migrate) >>> File "/home/prasad/Rootpy/web2py 2.3/gluon/scheduler.py", line 501, in >>> define_tables >>> migrate=migrate, format='%(task_name)s') >>> File "/home/prasad/Rootpy/web2py 2.3/gluon/dal.py", line 7186, in >>> define_table >>> table = self.lazy_define_table(tablename,*fields,**args) >>> File "/home/prasad/Rootpy/web2py 2.3/gluon/dal.py", line 7222, in >>> lazy_define_table >>> polymodel=polymodel) >>> File "/home/prasad/Rootpy/web2py 2.3/gluon/dal.py", line 935, in >>> create_table >>> self.create_sequence_and_triggers(query,table) >>> File "/home/prasad/Rootpy/web2py 2.3/gluon/dal.py", line 1694, in >>> create_sequence_and_triggers >>> self.execute(query) >>> File "/home/prasad/Rootpy/web2py 2.3/gluon/dal.py", line 1709, in >>> execute >>> return self.log_execute(*a, **b) >>> File "/home/prasad/Rootpy/web2py 2.3/gluon/dal.py", line 1703, in >>> log_execute >>> ret = self.cursor.execute(*a, **b) >>> File "/usr/local/lib/python2.7/dist-packages/MySQLdb/cursors.py", >>> line 201, in execute >>> self.errorhandler(self, exc, value) >>> File "/usr/local/lib/python2.7/dist-packages/MySQLdb/connections.py", >>> line 36, in defaulterrorhandler >>> raise errorclass, errorvalue >>> OperationalError: (1050, "Table 'scheduler_task' already exists") >>> >>> I've followed following instructions. >>> >>> *1) Created a file models/scheduler.py* >>> >>> #code from scheduler.py file >>> from gluon.scheduler import Scheduler >>> mail_scheduler = Scheduler(db) >>> >>> >>> def send_mail(to, subject, message, cc=None, bcc=None, >>> attachments=None): >>> """ >>> This module is called by scheduler. >>> You can check scheduler_task table and scheduler.task_status table >>> """ >>> if cc is None: >>> cc = [] >>> if bcc is None: >>> bcc = [] >>> if attachments is None: >>> attachments = [] >>> #sending mail >>> mail.send(to=to, cc=cc, bcc=bcc, >>> subject=subject, message=message, >>> attachments=attachments) >>> >>> *2) Called send_mail module in an external script.* >>> (scripts/send_mails.py) >>> >>> #extra code here >>> task = mail_scheduler.queue_task('send_mail', >>> pvars={'to': email, >>> 'subject': subject, >>> 'message': >>> html_email}, >>> >>> start_time=datetime.datetime.now()) >>> print task >>> >>> >>> *3) Created a worker and got above error* >>> >>> >>> Am I missing some steps? >>> >> -- >> Resources: >> - http://web2py.com >> - http://web2py.com/book (Documentation) >> - http://github.com/web2py/web2py (Source code) >> - https://code.google.com/p/web2py/issues/list (Report Issues) >> --- >> You received this message because you are subscribed to a topic in the >> Google Groups "web2py-users" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/web2py/gx5o0vAGXQQ/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> web2py+un...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Thanks and Regards > Prasad M. Muley > Programmer at One Delta Synergies Pvt Ltd. | PICT 2013 > > “Pretty much everything on the web uses those two things: *C* and *UNIX*,” > - Dennis Ritchie > *http://www.cs.bell-labs.com/who/dmr/* > <http://www.cs.bell-labs.com/who/dmr/> > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.