Я продолжаю получать «Метаданные не связаны с движком или соединением». при попытке создать мои таблицы SQL с пилонами - PullRequest
0 голосов
/ 04 февраля 2010

Вот мой текущий код:

def init_model(engine):

    global t_user
    t_user = sa.Table("User", meta.metadata,
    sa.Column("id", sa.types.Integer, primary_key=True),
    sa.Column("name", sa.types.String(100), nullable=False),
    sa.Column("first_name", sa.types.String(100), nullable=False),
    sa.Column("last_name", sa.types.String(100), nullable=False),                
    sa.Column("email", sa.types.String(100), nullable=False),                    
    sa.Column("password", sa.types.String, nullable=False),                      
    autoload=True,                                                               
    autoload_with=engine                                                         
    )                                                                            

    orm.mapper(User, t_user)                                                     

    meta.Session.configure(bind=engine)                                          
    meta.Session = orm.scoped_session(sm)
    meta.engine = engine

Затем я пытаюсь выполнить:

>>> meta.metadata.create_all(bind=meta.engine)

и получите ошибку:

raise exc.UnboundExecutionError(msg)
sqlalchemy.exc.UnboundExecutionError: The MetaData is not bound to an Engine or     Connection.  Execution can not proceed without a database to execute against.  Either execute with an explicit connection or assign the MetaData's .bind to enable implicit execution.

В моем development.ini у меня есть:

# SQLAlchemy database URL
sqlalchemy.url = sqlite:///%(here)s/development.db

Я новичок в пилонах Python и не знаю, как разрешить это сообщение. Это, вероятно, легко исправить для тренированного глаза. Спасибо.

1 Ответ

2 голосов
/ 05 февраля 2010

Эта проблема была решена.Я не знал, что при использовании пилонов из CLI я должен включить всю среду:

from paste.deploy import appconfig
from pylons import config

from project.config.environment import load_environment

conf = appconfig('config:development.ini', relative_to='.')
load_environment(conf.global_conf, conf.local_conf)

from project.model import *

После этого запросы к базе данных выполняются без проблем.

...