Попробовал sqlalchemy.dburi.url в конфиге (development.ini) - тот же результат. Вот copy-past из командной строки:

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>
Ну, сорцы у вас есть, поднимайтесь про трейсбеку вверх и изучайте сорцы и поймёте, что не так.
префикс (в environ.py) должен быть с точкой в конце
Be easy, stay cool
    engine = engine_from_config(config, 'sqlalchemy.dburi.')
    init_model(engine)
Все равно вылетает. Раздобыл новую книжку pylonsbook, но там все предположительно, причем SQLAlchemy, очевидно, будет настраиваться еще при создании скелета сайта... Может, и сейчас такая возможность есть, просто я про нее не знаю?
Переделал строку в development.ini на
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
Переделал строку в development.ini на
sqlalchemy.default.url="firebird://SYSDBA:masterkey@localhost:3050/d:/ifield7/ifield7.fdb"
эээм, а точно такой урл должен быть? он же вида "dbengine://user:password@host:port/dbname". Если у тебя сервер слушает на localhost:3050, то dbname всяко не такое. А если не слушает, то путь к файлу БД должен быть вместо хоста.

p.s. лучше укажи работающий пример с kinterbasdb

Last edited July 22, 2008, 12:25 p.m.

Be easy, stay cool
j2a
p.s. лучше укажи работающий пример с kinterbasdb
Ты хочешь сказать, что kinterbase не работает??? Но ведь тогда утверждение, что SQLAlchemy работает с FireBird некорректно... Тем не менее, я пробовал конструкцию вроде
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
import kinterbasdb
con = kinterbasdb.connect(dsn='localhost:d:\ifield7\IFIELD7.FDB', user='SYSDBA', password='masterkey', charset='WIN1251')
Попробуй URL:
firebird://SYSDBA:masterkey@localhost/d:/ifield7/IFIELD7.FDB?charset='WIN1251'
Be easy, stay cool
Спасибо. Ну, вот, кажется, ближе к теме. Правда, ругается на WIN1251, пришлось убрать, наверное, Win-1251 или что-то в этом роде. Ну да не важно. Теперь вроде схватывает, но пишет следующее:
  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'
- так я понимаю, речь идет о том самом "Рекордсе", о котором я спрашивал в самом начале темы :с( Замкнутый круг.
Судя по предоставленному коду, records.py это модуль описания моделей, records.t_insured - таблица, records.Record - класс, к которому маппится таблица. Читай туториал внимательней, там должно быть описано создание моделей.
Be easy, stay cool