Microsoft Windows [Версия 5.2.3790]
(C) Корпорация Майкрософт, 1985-2003.
C:\FirstApp>startsrv (это я батник сделал)
C:\FirstApp>paster serve --reload development.ini
Starting subprocess with file monitor
Traceback (most recent call last):
File "c:\Python25\egg\Scripts\paster-script.py", line 8, in <module> load_entry_point('pastescript==1.3.6', 'console_scripts', 'paster')()
File "c:\python25\egg\lib\site-packages\pastescript-1.3.6-py2.5.egg\paste\script\command.py", line 78, in run
invoke(command, command_name, options, args[1:])
File "c:\python25\egg\lib\site-packages\pastescript-1.3.6-py2.5.egg\paste\script\command.py", line 117, in invoke
exit_code = runner.run(args)
File "c:\python25\egg\lib\site-packages\pastescript-1.3.6-py2.5.egg\paste\script\command.py", line 212, in run
result = self.command()
File "c:\python25\egg\lib\site-packages\pastescript-1.3.6-py2.5.egg\paste\script\serve.py", line 227, in command
relative_to=base, global_conf=vars)
File "c:\python25\egg\lib\site-packages\pastescript-1.3.6-py2.5.egg\paste\script\serve.py", line 250, in loadapp
**kw)
File "c:\python25\egg\lib\site-packages\pastedeploy-1.3.1-py2.5.egg\paste\deploy\loadwsgi.py", line 193, in loadapp
return loadobj(APP, uri, name=name, **kw)
File "c:\python25\egg\lib\site-packages\pastedeploy-1.3.1-py2.5.egg\paste\deploy\loadwsgi.py", line 214, in loadobj
return context.create()
File "c:\python25\egg\lib\site-packages\pastedeploy-1.3.1-py2.5.egg\paste\deploy\loadwsgi.py", line 606, in create
return self.object_type.invoke(self)
File "c:\python25\egg\lib\site-packages\pastedeploy-1.3.1-py2.5.egg\paste\deploy\loadwsgi.py", line 99, in invoke
return fix_call(context.object, context.global_conf, **context.local_conf)
File "c:\python25\egg\lib\site-packages\pastedeploy-1.3.1-py2.5.egg\paste\deploy\util\fixtypeerror.py", line 57, in fix_call
val = callable(*args, **kw)
File "C:\FirstApp\firstapp\config\middleware.py", line 34, in make_app
load_environment(global_conf, app_conf)
File "C:\FirstApp\firstapp\config\environment.py", line 35, in load_environment
engine = engine_from_config(config, 'sqlalchemy.dburi')
File "c:\python25\egg\lib\site-packages\sqlalchemy-0.4.5-py2.5.egg\sqlalchemy\engine\__init__.py", line 177, in engine_from_config
url = opts.pop('url')
KeyError: 'url'
C:\FirstApp>
engine = engine_from_config(config, 'sqlalchemy.dburi.')
init_model(engine)Все равно вылетает. Раздобыл новую книжку pylonsbook, но там все предположительно, причем SQLAlchemy, очевидно, будет настраиваться еще при создании скелета сайта... Может, и сейчас такая возможность есть, просто я про нее не знаю?
sqlalchemy.default.url="firebird://SYSDBA:masterkey@localhost:3050/d:/ifield7/ifield7.fdb"и в enviroment.py переписал на engine = engine_from_config(config, 'sqlalchemy.default.')
init_model(engine)Я не уверен, но вроде бы дорабатывает до рассмотрения строки подключения базы. По крайней мере, ошибки в трейсе изменились на следующие:
...
File "c:\python25\egg\lib\site-packages\sqlalchemy-0.5.0beta2-py2.5.egg\sqlalchemy\engine\url.py", line 145, in make_url
return _parse_rfc1738_args(name_or_url)
File "c:\python25\egg\lib\site-packages\sqlalchemy-0.5.0beta2-py2.5.egg\sqlalchemy\engine\url.py", line 184, in _parse_rfc1738_args
"Could not parse rfc1738 URL from string '%s'" % name)
sqlalchemy.exc.ArgumentError: Could not parse rfc1738 URL from string '"firebird://SYSDBA:masterkey@localhost:3050/d:/ifield7/ifield7.fdb"'Не может распарсить строку подключения. Нигде не могу найти пример подключения FireBird'oвской базы. Никто не знает, что неправильно в строке? Вроде бы и логин, и пароль, и порт - все стандартное. Может быть, путь к fdb-файлу как-то иначе должен отображаться? База реальная, причем работает прямо сейчас.
soloэээм, а точно такой урл должен быть? он же вида "dbengine://user:password@host:port/dbname". Если у тебя сервер слушает на localhost:3050, то dbname всяко не такое. А если не слушает, то путь к файлу БД должен быть вместо хоста.
Переделал строку в development.ini наsqlalchemy.default.url="firebird://SYSDBA:masterkey@localhost:3050/d:/ifield7/ifield7.fdb"
p.s. лучше укажи работающий пример с kinterbasdb
Last edited July 22, 2008, 12:25 p.m.
j2aТы хочешь сказать, что kinterbase не работает??? Но ведь тогда утверждение, что SQLAlchemy работает с FireBird некорректно... Тем не менее, я пробовал конструкцию вроде
p.s. лучше укажи работающий пример с kinterbasdb
import kinterbasdb
con = kinterbasdb.connect(dsn='localhost:d:\ifield7\IFIELD7.FDB', user='SYSDBA', password='masterkey', charset='WIN1251')
cur = con.cursor()
cur.execute("select * from classes")
print cur.fetchall()И все работало... Да и сейчас работает. Ну, там подправить надо кое-что в kinterbasdb, на ibase.ru посоветовали. Там у народа так уже долгое время это используется.
soloПопробуй URL:import kinterbasdb con = kinterbasdb.connect(dsn='localhost:d:\ifield7\IFIELD7.FDB', user='SYSDBA', password='masterkey', charset='WIN1251')
firebird://SYSDBA:masterkey@localhost/d:/ifield7/IFIELD7.FDB?charset='WIN1251'
File "C:\FirstApp\firstapp\model\__init__.py", line 15, in init_model
orm.mapper(records.Record, records.t_insured)
AttributeError: 'module' object has no attribute 'Record'- так я понимаю, речь идет о том самом "Рекордсе", о котором я спрашивал в самом начале темы :с( Замкнутый круг.