Got it.
The cache issue was one part of the problem, which got fixed by clearing the files in tmp/cache directory.
Learning is - If you make mysql schema changes(add new table / column etc.) in mysql, either clear the tmp/cache directory or set the debug level as 3 and refresh the page and set the debug level again to 0(if on production).
I was also getting a save error - mysql server has gone away, because in configs the wait_timeout value was 600 seconds. But my script was taking longer than that. So model->save() was not working.
In my.cnf I updated the timeout to 4800 and restarted mysql and it fixed the problem.