Создание таблицы завершается с помощью SqlAlchemy и Pylons - PullRequest
2 голосов
/ 12 ноября 2010

Я только что обновился до Pylons 1.0 и SqlAlchemy 0.6.5.То, что было простым процессом создания схемы БД, больше не работает.

У меня есть простая модель:

Base = declarative_base()

class User(Base):
    __tablename__ = 'user'

    id = Column(Integer, primary_key=True)
    user_name = Column(String)

    def __init__(self, userName):
        self.userName = userName

    def __repr__(self):
       return "<User('%s')>" % (self.userName)

Когда я запускаю

paster setup-app development.ini

файл базы данныхсоздан (sqlite3), но не таблица, и ошибки не возвращаются.

Ведение журнала показывает, что выполняются следующие строки в websetup.py:

log.info("Creating schema...")
Base.metadata.create_all(bind = Session.bind, checkfirst = True)
log.info("Database successfully set up.")

Чего мне не хватает?

Редактировать: Дальнейшее копание показывает, что словарь Base.metadata.tables пуст.Итак, почему модель не отражена в метаданных?

1 Ответ

0 голосов
/ 12 ноября 2010

Хорошо, я нашел проблему.

В model.meta.py, Base = declarative_base() уже выполнено.Когда я также добавил этот оператор в model.__init__.py, он, очевидно, создает новый экземпляр без метаданных, поэтому не было таблиц для создания.

Мне не совсем ясно, почему / как это работает, поэтомуесли у кого-нибудь (у Майка Байера?) есть подробности, я хотел бы знать.

...