SQLAlchemy. Operational Error: No such table
Verfasst: Donnerstag 3. Dezember 2009, 12:05
Hallo zusammen,
ich bin mit meinem Latein am Ende:
Ich habe eine Webapplikation mit werkzeug + salalchemy geschrieben, die lokal wunderbar läuft.
Wenn ich die nun auf einem Apache deploye (mod_wsgi, nur ScriptAlias, kein VirtualHost wie in der Werkzeug-Doc beschrieben), so bekomme ich den folgenden Fehler:
Woran kann das liegen? Er "findet" ja augenscheinlich die Tabelle nicht. Wie kann das sein? Bedeutet das, dass er gar keine Connection aufgebaut hat? (Dann würde ich aber doch beim create_engine() Aufruf eine aussagekräftige Fehlermeldung erwarten!
Ich habe per google das hier gefunden:
http://www.mail-archive.com/sqlalchemy@ ... 10375.html
Daraus werde ich aber nicht wirklich schlau! Angelegt habe ich die Datenbank ja bereits (sie existiert auch und ist def. nicht korrupt!). Wozu also das create_all()?
Vor allem: Wenn das ganze lokal läuft, wieso sollte dann etwas am Code nicht stimmen?
Die *.sqlite Datei scheint das Script ja auch zu finden - oder trügt der Schein? Gibt es da eine Möglichkeit abzutesten, ob er sich zu der Datei "connecten" kann?
Wäre toll, wenn jeman einen Tipp für mich hätte.
ich bin mit meinem Latein am Ende:
Ich habe eine Webapplikation mit werkzeug + salalchemy geschrieben, die lokal wunderbar läuft.
Wenn ich die nun auf einem Apache deploye (mod_wsgi, nur ScriptAlias, kein VirtualHost wie in der Werkzeug-Doc beschrieben), so bekomme ich den folgenden Fehler:
Code: Alles auswählen
[Thu Dec 03 11:42:13 2009] [error] 2009-12-03 11:42:13,875 INFO sqlalchemy.engine.base.Engine.0x...1530 SELECT picture.pid AS picture_pid, picture.filename AS picture_filename, picture.suffix AS picture_suffix, picture.description AS picture_description, picture.date AS picture_date, picture.group_id AS picture_group_id, user_group_1.screenname AS user_group_1_screenname, user_group_1.password AS user_group_1_password, user_group_1.avatar AS user_group_1_avatar
[Thu Dec 03 11:42:13 2009] [error] FROM picture LEFT OUTER JOIN user_group AS user_group_1 ON user_group_1.screenname = picture.group_id ORDER BY picture.date DESC
[Thu Dec 03 11:42:13 2009] [error] 2009-12-03 11:42:13,875 INFO sqlalchemy.engine.base.Engine.0x...1530 []
[Thu Dec 03 11:42:13 2009] [error] 2009-12-03 11:42:13,875 INFO sqlalchemy.engine.base.Engine.0x...1530 ROLLBACK
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] mod_wsgi (pid=2064): Exception occurred processing WSGI script 'X:/webserver/Apache2.2/htdocs/ws0910/uebung3/flacker/flacker/flacker.wsgi'.
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] Traceback (most recent call last):
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] File "X:/webserver/Apache2.2/htdocs/ws0910/uebung3/flacker/flacker\\application.py", line 33, in __call__
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] return self.dispatch(environ, start_response)
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] File "X:\\webserver\\Python26\\lib\\site-packages\\werkzeug-0.5.1-py2.6.egg\\werkzeug\\utils.py", line 248, in __call__
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] return self.app(environ, start_response)
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] File "X:/webserver/Apache2.2/htdocs/ws0910/uebung3/flacker/flacker\\application.py", line 48, in dispatch
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] response = handler(request, **kwargs)
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] File "X:/webserver/Apache2.2/htdocs/ws0910/uebung3/flacker/flacker\\views.py", line 23, in index
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] .order_by(Picture.date.desc()).all()[:10]
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] File "X:\\webserver\\Python26\\lib\\site-packages\\sqlalchemy-0.5.6-py2.6.egg\\sqlalchemy\\orm\\query.py", line 1267, in all
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] return list(self)
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] File "X:\\webserver\\Python26\\lib\\site-packages\\sqlalchemy-0.5.6-py2.6.egg\\sqlalchemy\\orm\\query.py", line 1361, in __iter__
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] return self._execute_and_instances(context)
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] File "X:\\webserver\\Python26\\lib\\site-packages\\sqlalchemy-0.5.6-py2.6.egg\\sqlalchemy\\orm\\query.py", line 1364, in _execute_and_instances
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] result = self.session.execute(querycontext.statement, params=self._params, mapper=self._mapper_zero_or_none())
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] File "X:\\webserver\\Python26\\lib\\site-packages\\sqlalchemy-0.5.6-py2.6.egg\\sqlalchemy\\orm\\session.py", line 755, in execute
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] clause, params or {})
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] File "X:\\webserver\\Python26\\lib\\site-packages\\sqlalchemy-0.5.6-py2.6.egg\\sqlalchemy\\engine\\base.py", line 824, in execute
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] return Connection.executors[c](self, object, multiparams, params)
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] File "X:\\webserver\\Python26\\lib\\site-packages\\sqlalchemy-0.5.6-py2.6.egg\\sqlalchemy\\engine\\base.py", line 874, in _execute_clauseelement
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] return self.__execute_context(context)
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] File "X:\\webserver\\Python26\\lib\\site-packages\\sqlalchemy-0.5.6-py2.6.egg\\sqlalchemy\\engine\\base.py", line 896, in __execute_context
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] self._cursor_execute(context.cursor, context.statement, context.parameters[0], context=context)
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] File "X:\\webserver\\Python26\\lib\\site-packages\\sqlalchemy-0.5.6-py2.6.egg\\sqlalchemy\\engine\\base.py", line 950, in _cursor_execute
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] self._handle_dbapi_exception(e, statement, parameters, cursor, context)
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] File "X:\\webserver\\Python26\\lib\\site-packages\\sqlalchemy-0.5.6-py2.6.egg\\sqlalchemy\\engine\\base.py", line 931, in _handle_dbapi_exception
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] raise exc.DBAPIError.instance(statement, parameters, e, connection_invalidated=is_disconnect)
[Thu Dec 03 11:42:13 2009] [error] [client 139.174.100.222] OperationalError: (OperationalError) no such table: picture u'SELECT picture.pid AS picture_pid, picture.filename AS picture_filename, picture.suffix AS picture_suffix, picture.description AS picture_description, picture.date AS picture_date, picture.group_id AS picture_group_id, user_group_1.screenname AS user_group_1_screenname, user_group_1.password AS user_group_1_password, user_group_1.avatar AS user_group_1_avatar \\nFROM picture LEFT OUTER JOIN user_group AS user_group_1 ON user_group_1.screenname = picture.group_id ORDER BY picture.date DESC' []
Ich habe per google das hier gefunden:
http://www.mail-archive.com/sqlalchemy@ ... 10375.html
Daraus werde ich aber nicht wirklich schlau! Angelegt habe ich die Datenbank ja bereits (sie existiert auch und ist def. nicht korrupt!). Wozu also das create_all()?
Vor allem: Wenn das ganze lokal läuft, wieso sollte dann etwas am Code nicht stimmen?
Die *.sqlite Datei scheint das Script ja auch zu finden - oder trügt der Schein? Gibt es da eine Möglichkeit abzutesten, ob er sich zu der Datei "connecten" kann?
Wäre toll, wenn jeman einen Tipp für mich hätte.