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.