Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 24, 2014 10:03:17

myarik
Зарегистрирован: 2012-11-20
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Миграции в SQLAlchemy

Добрый день.

Начал разбираться с Flask-ом, до этого использовал только Django. После использования south, немного застрял с миграциями в SQLAlchemy. В качестве примера использовал статью http://habrahabr.ru/post/196810/.

Есть следующая структура данных

class Base(db.Model):
    __abstract__ = True
    id = db.Column(db.Integer, primary_key=True)
    date_created = db.Column(db.DateTime,  default=db.func.current_timestamp())
    date_modified = db.Column(db.DateTime,  default=db.func.current_timestamp(),
                              onupdate=db.func.current_timestamp())
class User(Base):
    __tablename__ = 'user'
    # Email
    email = db.Column(db.String(128),  nullable=False, unique=True)
    # User Name
    name = db.Column(db.String(256),  nullable=False)
    # User Surname
    surname = db.Column(db.String(256),  nullable=False)

Сделал первую миграцию, все прошло без ошибок, таблица появилась в базе. Попробовал добавить вторую модель
class Note(Base):
    __tablename__ = 'note'
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    user = db.relationship('User',
                           backref=db.backref('note', lazy='dynamic'))
    text = db.Column(db.Text, nullable=True)
Делаю миграцию выпадает ошибка
002_migration.py", line 10
    Column('date_created', DateTime, default=ColumnDefault(<sqlalchemy.sql.functions.current_timestamp at 0x7f918cb02dd0; current_timestamp>)),
                                                        ^
SyntaxError: invalid syntax
Насколько я понял проблема в строчке <sqlalchemy.sql.functions.current_timestamp at 0x7f918cb02dd0; current_timestamp>, буду благодарен за любую подсказку.

Офлайн

#2 Сен. 25, 2014 17:15:30

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Миграции в SQLAlchemy

> default=db.func.current_timestamp())

Возможно тут нужно передавать функцию, а не её результат, попробуйте убрать вызов функции т.е. символы “()”

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version